Jeff Lee blog:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),retain the url when reproduced ! Thanks

效果图:



求资源到首页上部加群即可。

一. SlidingMenu简介

github:https://github.com/jfeinstein10/SlidingMenu

官网上面的简介上翻译的:

SlidingMenu是能让开发者很容易的开发有滑动菜单App(像Google+,YouTube,Facebook)的开源android库。只要引入这个开源库的许可代码,就可以很容易免费的用在你想要滑动菜单的app。如下图所示:
                                                                                                 

二.官方小例子

  1. public class SlidingExample extends Activity {
  2.  
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setTitle(R.string.attach);
  7. // set the content view
  8. setContentView(R.layout.content);
  9. // configure the SlidingMenu
  10. SlidingMenu menu = new SlidingMenu(this);
  11. menu.setMode(SlidingMenu.LEFT);
  12. menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  13. menu.setShadowWidthRes(R.dimen.shadow_width);
  14. menu.setShadowDrawable(R.drawable.shadow);
  15. menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
  16. menu.setFadeDegree(0.35f);
  17. menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
  18. menu.setMenu(R.layout.menu);
  19. }
  20.  
  21. }

自然你也可以用xml定义一个slidingMenu

  1. <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
  2. xmlns:sliding="http://schemas.android.com/apk/res-auto"
  3. android:id="@+id/slidingmenulayout"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"
  7. sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"
  8. sliding:touchModeAbove="margin|fullscreen"
  9. sliding:behindOffset="@dimen/YOUR_OFFSET"
  10. sliding:behindWidth="@dimen/YOUR_WIDTH"
  11. sliding:behindScrollScale="@dimen/YOUR_SCALE"
  12. sliding:shadowDrawable="@drawable/YOUR_SHADOW"
  13. sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH"
  14. sliding:fadeEnabled="true|false"
  15. sliding:fadeDegree="float"
  16. sliding:selectorEnabled="true|false"
  17. sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/>

官方文档翻译如下:

  • viewAbove - 在菜单之上的布局引用

  • viewBehind - 在菜单之下的布局引用
  • touchModeAbove - 指那一部分屏幕触摸后视图显示
  • behindOffset - 菜单显示时,主体显示多少(单位像素)
  • behindWidth - 菜单显示,主体显示的宽。默认全屏
  • behindScrollScale - 菜单显示的滚动设置
  • shadowDrawable - 滚动阴影设置
  • shadowWidth - 滚动阴影的宽度
  • fadeEnabled - 滑动时菜单的是否渐变
  • fadeDegree - 滑动时的渐变程度

三.实现滑动菜单

主要结构:MainAct为主入口,然后各个fragment实现各自内容动作。

MainAct.java

  1. public class MainAct extends FragmentActivity {
  2. private SlidingMenu menu;
  3.  
  4. @Override
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.slidingmenu_main);
  8.  
  9. menu = new SlidingMenu(this);
  10. menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  11. menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);
  12. menu.setShadowDrawable(R.drawable.slidingmenu_shadow);
  13. menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
  14. DisplayMetrics dm = new DisplayMetrics();
  15. getWindowManager().getDefaultDisplay().getMetrics(dm);
  16. menu.setFadeDegree(0.35f);
  17. menu.setBehindOffset(dm.widthPixels*50/100);
  18. menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
  19.  
  20. menu.setMode(SlidingMenu.LEFT_RIGHT);//这里模式设置为左右都有菜单,RIGHT显示右菜单,LEFT显示左菜单,LEFT_RIGH显示左右菜单
  21. menu.setContent(R.layout.slidingmenu_content);
  22. menu.setMenu(R.layout.slidingmenu_menu);
  23.  
  24. menu.setSecondaryMenu(R.layout.slidingmenu_menu_2);
  25. menu.setSecondaryShadowDrawable(R.drawable.slidingmenu_shadow_2);
  26.  
  27. getSupportFragmentManager()
  28. .beginTransaction()
  29. .replace(R.id.slidingmenu_content, new MainFragment(menu))
  30. .commit();//设置主页面内容
  31.  
  32. getSupportFragmentManager()
  33. .beginTransaction()
  34. .replace(R.id.slidingmenu_menu, new MainLeftFragment())
  35. .commit();//设置左菜单内容
  36.  
  37. getSupportFragmentManager()
  38. .beginTransaction()
  39. .replace(R.id.slidingmenu_menu_2, new MainRightFragment(menu))
  40. .commit();//设置右菜单内容
  41.  
  42. }
  43. }

总结:用则简单则难

Android UI(三)SlidingMenu实现滑动菜单(详细 官方)的更多相关文章

  1. Android开源库--SlidingMenu左右侧滑菜单

    如果说我比别人看得更远些,那是因为我站在了巨人的肩上.   github地址:https://github.com/jfeinstein10/SlidingMenu   设置: 1.下载之后以依赖项的 ...

  2. Android UI效果实现——Activity滑动退出效果

    更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况 ...

  3. 【Android UI】顶部or底部菜单的循环滑动效果一

    实现了分页的滑动效果,做的demo流畅运行 注:貌似支持的样式(控件)有一定的限制,我试过短信的listview页面,暂无法实现滑动效果 java文件:MainActivity.java.Activi ...

  4. 【Android UI】案例03滑动切换效果的实现(ViewPager)

    本例使用ViewPager实现滑动切换的效果.本例涉及的ViewPager.为android.support.v4.view.ViewPager.所以须要在android项目中导入android-su ...

  5. SlidingMenu 左侧滑动菜单

    1.MainActivity package loveworld.slidingmenu; import java.util.ArrayList; import android.app.Activit ...

  6. Android 学习笔记之AndBase框架学习(七) SlidingMenu滑动菜单的实现

    PS:努力的往前飞..再累也无所谓.. 学习内容: 1.使用SlidingMenu实现滑动菜单..   SlidingMenu滑动菜单..滑动菜单在绝大多数app中也是存在的..非常的实用..Gith ...

  7. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]h ...

  8. Android 滑动菜单SlidingMenu

    首先我们看下面视图: 这种效果大家都不陌生,网上好多都说是仿人人网的,估计人家牛逼出来的早吧,我也参考了一一些例子,实现起来有三种方法,我下面简单介绍下: 方法一:其实就是对GestureDetect ...

  9. 【Android UI设计与开发】第17期:滑动菜单栏(二)开源项目SlidingMenu的示例

    通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上 一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的 ...

随机推荐

  1. ftp协议 主动和被动两种模式模式

  2. Maven学习 八 采用Maven搭建SSM环境

    第一步:创建一个Maven项目 项目的打包方式选择,war 第二步:在webapp下面创建java web项目的目录结构,并配置web.xml文件 <?xml version="1.0 ...

  3. 学习笔记day1-计算机介绍

    1.1 “计算机”基本介绍 一.为什么需要计算机 对于现在的我们来说,每天要处理的信息量是巨大的,所以如果还是人工的来对这些数据进行处理,那么效率是很低的.此时计算机的出现就可以帮助我么来提高处理数据 ...

  4. 行业相关的webgl项目

    炼钢厂污水处理http://www.hightopo.com/demo/CirculatingWaterPump/index.html智能idc机房http://www.hightopo.com/de ...

  5. python猜数字GUI版本V0.2

    使用类方式编写猜数字游戏GUI版本. 思路:初始化数字以及初始化wegdits,编写button click event判断代码的函数,每猜一次点击button调用一次该函数,并计算猜的次数.如果猜对 ...

  6. SSD硬盘安装win10 且安装千牛工作台频繁卡死问题解决过程

    之前win7的时候突然出现卡死现象,具体表现为:磁盘占用百分之百,千牛窗口无法关闭,点截图按钮后,千牛关闭了,并没有截图,千牛聊天输入/无法出现快捷短语了,电脑桌面点击右键没反应,任务栏点击右键也没反 ...

  7. wordcounter

    这周是一个wc的程序,通过C语言在WINDOWS上实现的. 我在通过参考的代码后,发现WC程序的代码其实相当简洁,主要的代码不过十数行.主要通过设置一个字符型变量,这个变量可以得到一个从键盘输入的字符 ...

  8. html5之上的图片处理

    在开发 H5 应用的时候碰到一个问题,应用只需要一张小的缩略图,而用户用手机上传的确是一张大图,手机摄像机拍的图片好几 M,这可要浪费很多流量. 像我这么为用户着想的程序员,绝对不会让这种事情发生的, ...

  9. Akka-CQRS(6)- read-side

    前面我们全面介绍了在akka-cluster环境下实现的CQRS写端write-side.简单来说就是把发生事件描述作为对象严格按发生时间顺序写入数据库.这些事件对象一般是按照二进制binary方式如 ...

  10. MySQL InnoDB 行记录格式(ROW_FORMAT)

    MySQL InnoDB 行记录格式(ROW_FORMAT) 一.行记录格式的分类和介绍 在早期的InnoDB版本中,由于文件格式只有一种,因此不需要为此文件格式命名.随着InnoDB引擎的发展,开发 ...