Android开源项目学习笔记(二)--SlidingMenu
来源:互联网 发布:origin曲线显示数据值 编辑:程序博客网 时间:2024/05/03 01:46
前面总结中多次提到过SlidingMenu,自己也对这个开源控件的使用简单的学习了一下,至于控件的编写,作为小菜的我由于水平有限,暂时没考虑去研究,先用着呗,当然要感谢这些大牛们在开源社区的贡献。废话不多说,直接看代码吧(该项目的Lib库依赖ActionBarSherlock的Lib库)
今天主要看在PropertiesActivity这个类,因为其中几乎包含了对SlidingMenu所有属性进行设置的方式方法:
首先,Activity要继承自SlidingFragmentActivity,而SlidingFragmentActivity又继承自SherlockFragmentActivity并实现SlidingActivityBase接口提供相应方法,这个我们先不仔细研究,只要我们的Activity继承自SlidingFragmentActivity就行了。
左侧、右侧和两边
在BaseActivity中将SlidingMenu默认设置左面菜单,全屏可拉动及其他一些属性,下面看代码:
// 设置menu布局,根据模式决定是从左侧还是右侧拉出setBehindContentView(R.layout.menu_frame);FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();mFrag = new SampleListFragment();t.replace(R.id.menu_frame, mFrag);t.commit();//SlidingMenu控件的初始化SlidingMenu sm = getSlidingMenu();sm.setShadowWidthRes(R.dimen.shadow_width);//阴影宽度sm.setShadowDrawable(R.drawable.shadow);//阴影Drawablesm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//拉开后离边框距离sm.setFadeDegree(0.35f); //颜色渐变比例sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //拉动事件区域 --全屏getSupportActionBar().setDisplayHomeAsUpEnabled(true); //ActionBar返回启用通过设置SlidingMenu的模式:
// 设置左侧menusm.setMode(SlidingMenu.LEFT);
// 设置右侧menusm.setMode(SlidingMenu.RIGHT);当设置左右两侧时要注意,因为前面只添加了一个菜单布局,所以这里我们要另外再设置一个:
// 设置左右侧都有sm.setMode(SlidingMenu.LEFT_RIGHT);// 此时要再次添加布局菜单,上一个为左侧,这个为右侧sm.setSecondaryMenu(R.layout.menu_frame_two);getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame_two, new SampleListFragment()).commit();sm.setSecondaryShadowDrawable(R.drawable.shadowright);
可拉动触控范围
这个更简单,不多说:
switch (checkedId) { case R.id.touch_above_full:// 设置触摸拖动模式--全屏getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);break; case R.id.touch_above_margin:// 设置触摸拖动模式--边缘getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);break; case R.id.touch_above_none:// 设置触摸拖动模式--关闭getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);break;}
放缩比例
// 放缩比例getSlidingMenu().setBehindScrollScale((float) seekBar.getProgress() / seekBar.getMax());
拉出菜单宽度
// 菜单宽度(源码中作者把该操作隐藏)getSlidingMenu().setBehindWidth((int) (percent * getSlidingMenu().getWidth()));getSlidingMenu().requestLayout();
阴影
有无阴影
if (isChecked)// 是否有阴影getSlidingMenu().setShadowDrawable(getSlidingMenu().getMode() == SlidingMenu.LEFT ? R.drawable.shadow: R.drawable.shadowright);elsegetSlidingMenu().setShadowDrawable(null);
阴影宽度
// 设置阴影宽度getSlidingMenu().setShadowWidth(width);getSlidingMenu().invalidate();
颜色渐变
有无渐变
getSlidingMenu().setFadeEnabled(isChecked);
渐变比率
// 颜色渐变比例getSlidingMenu().setFadeDegree((float) seekBar.getProgress() / seekBar.getMax());
- Android开源项目学习笔记(二)--SlidingMenu
- Android开源项目SlidingMenu的学习笔记(二)
- Android开源项目SlidingMenu的学习笔记(一)
- Android SlidingMenu 开源项目使用示例(二)
- Android SlidingMenu 开源项目使用示例(二)
- Android SlidingMenu 开源项目使用示例(二)
- Android SlidingMenu 开源项目实现侧拉菜单(二)
- android 开源项目 SlidingMenu
- Android开源项目SlidingMenu
- Android:滑动菜单栏(二)开源项目SlidingMenu的示例
- 滑动菜单栏(二)开源项目SlidingMenu的示例
- 滑动菜单栏(二)开源项目SlidingMenu的示例
- Android学习笔记之SlidingMenu
- Android开源项目SlidingMenu深入剖析
- Android开源项目之 SlidingMenu
- Android SlidingMenu 开源项目导入
- Android开源项目SlidingMenu深入剖析
- Android开源项目SlidingMenu深入剖析
- VC中 十六进制字符串转换为十进制数字
- hdu1051(Wooden Sticks 贪心)
- 经典网页设计:25个应用视差滚动的单页网站
- 程序员如何保持优秀
- ASP.NET 2.0中发送电子邮件
- Android开源项目学习笔记(二)--SlidingMenu
- java嵌套类(Nested Classes)总结
- Giphy – 分享一个很棒的 GIF 动画图片搜索引擎
- CXF初步教程(续)
- 学习 严蔚敏讲数据结构笔记01
- 第七次课后作业
- APK编译、签名、zipalign优化及APKTOOL的使用
- 杭电2051
- http://zhangfan822.iteye.com/