我的推测控件原理:从我的理解是该自定义控件实例化时候需要接收一个activity,
所以父类中可能写了此activity touch事件,然后再activity的touch事件中来描述
如何呈现slideMenu
1.第一步:下载SlidingMenu
下载地址:https://github.com/jfeinstein10/SlidingMenu
2.第二步:在studio中新建一个项目
3.第三步:导入下载的示例项目的library模块
4.第四步:修改build grade错误并且依赖导入的module
5.新建SlidingMenuHelper
<span style="font-size:14px;">import android.app.Activity;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
/**
*/
public class SlidingMenuHelper {
Activity mActivity;
public SlidingMenuHelper(Activity mActivity){
this.mActivity=mActivity;
}
public SlidingMenu initSlidingMenu() {
SlidingMenu localSlidingMenu = new SlidingMenu(mActivity);
localSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//设置左右滑菜单
localSlidingMenu.setTouchModeAbove(SlidingMenu.SLIDING_WINDOW);//设置要使菜单滑动,触碰屏幕的范围,
//<span style="color:#FF0000;">SLIDING_WINDOW 根据我的实际测试发现此范围在Menu和主内容交接一带,并且在主内容一侧</span>
//localSlidingMenu.setTouchModeBehind(SlidingMenu.RIGHT);
localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度
localSlidingMenu.setShadowDrawable(R.drawable.shadow);//设置阴影图片
localSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置划出时主页面显示的剩余宽度
localSlidingMenu.setFadeEnabled(true);//设置滑动时菜单的是否渐变 <span style="white-space:pre"> </span>localSlidingMenu.setFadeDegree(0.35F);//<span style="font-family: Helvetica, arial, freesans, clean, sans-serif;">设置</span>滑动时的渐变程度
localSlidingMenu.attachToActivity(mActivity, SlidingMenu.RIGHT);//使SlidingMenu附加在Activity右边
// localSlidingMenu.setBehindWidthRes(R.dimen.left_drawer_avatar_size);//设置SlidingMenu菜单的宽度
localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//设置menu的布局文件
localSlidingMenu.setSecondaryMenu(R.layout.right_drawer_fragment);
localSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadow);
// localSlidingMenu.toggle();//动态判断自动关闭或开启SlidingMenu
localSlidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
public void onOpened() {
}
});
return localSlidingMenu;
}
} </span>
6.在MainActivity中应用
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SlidingMenuHelper sh = new SlidingMenuHelper(MainActivity.this);
sh.initSlidingMenu();
}
}
DEMO下载http://download.csdn.net/detail/rnzuozuo/8571661
类似文章参考:http://blog.csdn.net/vipzjyno1/article/details/23614675