#AndroidResideMenu
中文说明请点击 这里
The idea of ResideMenu is from Dribble 1 and 2. It has come true and run in iOS devices. iOS ResideMenu
This project is the RefsideMenu Android version. The visual effect is partly referred to iOS version of ResideMenu.
And thanks to the authors for the above idea and contribution.
![](https://github.com/SpecialCyCi/AndroidResideMenu/raw/master/2.gif)
DEMO
This copy is the demo.
Version Migration
Upgrading to v1.4
from v1.3
, v1.2
, v1.1
, v1.0
Duplicate the followed code in dispatchTouchEvent() of Activity, replace the old dispatchTouchEvent()
code.
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return resideMenu.dispatchTouchEvent(ev);
}
Requirements
Run in Android 2.3 +
Installation
- import ResideMenu project to your workspace.
- make it as a dependency library project to your main project.
( see example )
or
If you want to merge ResideMenu with your project, you should follow these steps.
- Copy all files from src/com/special/ResideMenu to your project.
- Copy libs/nineoldandroids-library-2.4.0.jar to your project’s corresponding path: libs/
- Copy res/drawable-hdpi/shadow.9.png to your project’s corresponding path: res/drawable-hdpi/
- Copy res/layout/residemenu.xml and residemenu_item.xml to your project’s corresponding path: res/layout
Usage
init ResideMenu: write these code in Activity onCreate()
resideMenu = new ResideMenu(this);
resideMenu.setBackground(R.drawable.menu_background);
resideMenu.attachToActivity(this);
String titles[] = { "Home", "Profile", "Calendar", "Settings" };
int icon[] = { R.drawable.icon_home, R.drawable.icon_profile, R.drawable.icon_calendar, R.drawable.icon_settings };
for (int i = 0; i < titles.length; i++){
ResideMenuItem item = new ResideMenuItem(this, icon[i], titles[i]);
item.setOnClickListener(this);
resideMenu.addMenuItem(item, ResideMenu.DIRECTION_LEFT);
}
If you want to use slipping gesture to operate(lock/unlock) the menu, override this code in Acitivity dispatchTouchEvent() (please duplicate the followed code in dispatchTouchEvent() of Activity.
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return resideMenu.dispatchTouchEvent(ev);
}
On some occasions, the slipping gesture function for locking/unlocking menu, may have conflicts with your widgets, such as viewpager. By then you can add the viewpager to ignored view, please refer to next chapter – Ignored Views.
open/close menu
resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
resideMenu.closeMenu();
listen in the menu state
resideMenu.setMenuListener(menuListener);
private ResideMenu.OnMenuListener menuListener = new ResideMenu.OnMenuListener() {
@Override
public void openMenu() {
Toast.makeText(mContext, "Menu is opened!", Toast.LENGTH_SHORT).show();
}
@Override
public void closeMenu() {
Toast.makeText(mContext, "Menu is closed!", Toast.LENGTH_SHORT).show();
}
};
disable a swipe direction
resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);
##Ignored Views
On some occasions, the slipping gesture function for locking/unlocking menu, may have conflicts with your widgets such as viewpager.By then you can add the viewpager to ignored view.
FrameLayout ignored_view = (FrameLayout) findViewById(R.id.ignored_view);
resideMenu.addIgnoredView(ignored_view);
So that in ignored view’s workplace, the slipping gesture will not be allowed to operate menu.
##About me
A student from SCAU China.
Email: specialcyci#gmail.com