转载请注明出处:http://blog.csdn.net/u010194538/article/details/50865670
SlidingMenu是一款开源的Android开发类库,它可以让开发者在自己的Android App中非常便捷地创建侧滑菜单,类似微信、QQ等。
SlidingMenu开源框架使用步骤
- 右侧项目栏右键Import->
已存在的Android Code into Workspce->SlidingMenu-master->选择library和copy projects into workspace->即可在eclipse中看到library库 - 在使用SlidingMenu的项目上右键选择properties->选择Android,Add Library并应用
- 新建Demo,修改MainActivity继承SlidingXXXActivity,并把onCreate()方法的权限改为public。【如果此时还有错,应该是jar包冲突。把项目libs目录下的android-support-v4.jar替换掉库中的v4.jar包就不会报错了,然后在库中的android-support-v4右键Build Path,然后在Android Private Libraries里build path remove掉即可】
左右滑动效果图
MainActivity.java Demo
package com.example.slidingmenu_demo;
import android.os.Bundle;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
public class MainActivity extends SlidingFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//1、设置主界面
setContentView(R.layout.activity_main);
//2、设置左侧界面
setBehindContentView(R.layout.activity_left);
//3、设置滑动模式,需要获取SlidingMenu来设置
SlidingMenu menu = getSlidingMenu();
menu.setMode(SlidingMenu.LEFT_RIGHT);//设置左和右侧(3种方式)都可以划出来
//4、设置右侧界面
menu.setSecondaryMenu(R.layout.activity_right);
//设置屏幕在什么地方可以滑动出来(也是3种方式)
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏都可以
menu.setBehindOffset(250);//设置主界面像素剩余的位置
//(假如手机为320*480,则左侧菜单剩余70)
}
}
将侧滑菜单引入项目的方式还有
1、在Activity中通过SlidingMenu构造方法,直接设置侧滑菜单
2、将SlidingMenu当作普通控件
SlidingMenu的一些常用属性
//设置侧滑菜单的位置,可选值LEFT , RIGHT , LEFT_RIGHT (两边都有菜单时设置)
menu.setMode(SlidingMenu.LEFT_RIGHT);
//设置触摸屏幕的模式,三种:
TOUCHMODE_FULLSCREEN任何位置 ,
TOUCHMODE_MARGIN 边界才可以拖动,
TOUCHMODE_NONE不可以拖动
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
//根据dimension资源文件的ID来设置阴影的宽度
menu.setShadowWidthRes(R.dimen.shadow_width);
//根据资源文件ID来设置滑动菜单的阴影效果
menu.setShadowDrawable(R.drawable.shadow);
// 这两个都是设置滑动菜单视图的宽度,二选一
//设置SlidingMenu离屏幕的偏移量
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
//设置宽度
menu.setBehindWidth()
// 设置渐入渐出效果的值
menu.setFadeDegree(0.35f);
//设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1
menu.setBehindScrollScale(1.0f);
//设置二级菜单的阴影效果
menu.setSecondaryShadowDrawable(R.drawable.shadow);
//设置右边(二级)侧滑菜单
menu.setSecondaryMenu(R.layout.right_menu_frame);
//为侧滑菜单设置布局
menu.setMenu(R.layout.leftmenu);
//把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT , SLIDING_WINDOW
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);