SlidingMenu
来源:互联网 发布:二战德军重要战役数据 编辑:程序博客网 时间:2024/04/30 08:11
侧边栏的实现效果,有许多方式。
我这里使用了github上的开源项目,首先要导入往开发工具中导入library包。
点击下载
也可以直接去下载源文件:
https://github.com/jfeinstein10/SlidingMenu
在界面的oncreate()方法中,加入侧边栏:
// 侧边栏menu = new SlidingMenu(this);// 设置滑动方向menu.setMode(SlidingMenu.LEFT);// 设置监听开始滑动的触碰范围menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);// 设置边缘阴影的宽度,通过dimens资源文件中的ID设置menu.setShadowWidthRes(R.dimen.shadow_width);// 设置边缘阴影的颜色/图片,通过资源文件ID设置menu.setShadowDrawable(R.drawable.shadow);// 设置menu全部打开后,主界面剩余部分与屏幕边界的距离,通过dimens资源文件ID设置menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);// 设置是否淡入淡出menu.setFadeEnabled(true);// 设置淡入淡出的值,只在setFadeEnabled设置为true时有效menu.setFadeDegree(0.35f);// 将menu绑定到Activity,同时设置绑定类型menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);// 设置menu的layoutmenu.setMenu(R.layout.slide_menu);// 设置menu的背景menu.setBackgroundColor(getResources().getColor(android.R.color.background_light));// 获取menu的layoutView menuroot = menu.getMenu();
在这里,你会因为缺少几个文件,而报错。
slide_menu:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="240dip" android:layout_height="fill_parent" android:background="@drawable/bitmap_book_read_chapterlist_repeat" android:orientation="vertical" > <RelativeLayout android:layout_width="240dip" android:layout_height="50.0dip" > <ImageView android:id="@+id/img_head" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tv_useName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/img_head" android:layout_marginLeft="28dp" android:layout_toRightOf="@+id/img_head" android:text="会飞的鲨鱼" android:textColor="@android:color/white" /> <ImageView android:id="@+id/img_vip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginLeft="16dp" android:layout_toRightOf="@+id/tv_useName" android:src="@drawable/ic_launcher" /> </RelativeLayout> <TextView android:layout_width="240dip" android:layout_height="28.0dip" android:background="#ff313131" android:gravity="center_vertical" android:paddingLeft="15.0dip" android:text="分类" android:textColor="#ff959595" android:textSize="14.0sp" /> <TextView android:id="@+id/tv_contacts" android:layout_width="240dip" android:layout_height="50.0dip" android:background="@drawable/selector_category_item" android:clickable="true" android:drawableLeft="@drawable/ic_category_mark" android:drawablePadding="1.0dip" android:gravity="center_vertical" android:paddingLeft="15.0dip" android:paddingRight="10.0dip" android:text="最近联系人" android:textColor="#ff959595" android:textSize="16.0sp" /> <View android:layout_width="240dip" android:layout_height="2.0dip" android:background="@drawable/ic_shelf_category_divider" /> <TextView android:id="@+id/tv_neighborinfor" android:layout_width="240dip" android:layout_height="50.0dip" android:background="@drawable/selector_category_item" android:clickable="true" android:drawableLeft="@drawable/ic_category_mark" android:drawablePadding="1.0dip" android:gravity="center_vertical" android:paddingLeft="15.0dip" android:paddingRight="10.0dip" android:text="附近信息" android:textColor="#ff959595" android:textSize="16.0sp" /> <View android:layout_width="240dip" android:layout_height="2.0dip" android:background="@drawable/ic_shelf_category_divider" /> <TextView android:id="@+id/tv_checktime" android:layout_width="240dip" android:layout_height="50.0dip" android:background="@drawable/selector_category_item" android:clickable="true" android:drawableLeft="@drawable/ic_category_mark" android:drawablePadding="1.0dip" android:gravity="center_vertical" android:paddingLeft="15.0dip" android:paddingRight="10.0dip" android:text="签到" android:textColor="#ff959595" android:textSize="16.0sp" /> <View android:layout_width="240dip" android:layout_height="2.0dip" android:background="@drawable/ic_shelf_category_divider" /> <TextView android:id="@+id/tv_setting" android:layout_width="240dip" android:layout_height="50.0dip" android:background="@drawable/selector_category_item" android:clickable="true" android:drawableLeft="@drawable/ic_category_mark" android:drawablePadding="1.0dip" android:gravity="center_vertical" android:paddingLeft="15.0dip" android:paddingRight="10.0dip" android:text="设置" android:textColor="#ff959595" android:textSize="16.0sp" /> <View android:layout_width="240dip" android:layout_height="2.0dip" android:background="@drawable/ic_shelf_category_divider" /></LinearLayout>
slidingmenu_offset 和 shadow_width:
在values中的dimens文件中加入:
<dimen name="slidingmenu_offset">60dp</dimen> <dimen name="shadow_width">15dp</dimen>
shadow:
在drawable中加入文件:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:endColor="#33000000" android:centerColor="#11000000" android:startColor="#00000000" /></shape>
注意:
1.侧边栏的显示和关闭:
// 点击后,显示或者隐藏侧边栏menu.showMenu();
showMenu()的方法,在点击事件中能监听到,但是在监听menu的时候,调用的时候只能显示,不能关闭。
另外一种方法,调用切换方法:
// 切换侧边栏状态menu.toggle();
1 0
- SlidingMenu
- SlidingMenu
- SlidingMenu
- SlidingMenu
- SlidingMenu
- SlidingMenu
- Slidingmenu
- Slidingmenu
- slidingmenu
- SlidingMenu
- slidingMenu
- SlidingMenu
- SlidingMenu
- SlidingMenu
- SlidingMenu
- SlidingMenu
- slidingmenu
- SlidingMenu
- Android事件分发机制
- API实现自动处理物料搬运单
- poj 3923
- VS2008非托管c++访问webservice服务
- Bigcommerce: 网站移动终端项目总结
- SlidingMenu
- Netty4学习笔记(9)-- Channel状态转换
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- zz: python中if __name__ == '__main__': 的解析
- 路由转换
- C++抽象类
- Linux makefile 教程 非常详细,且易懂
- OpenGL 问答之 4 GLU
- 一个学习和配置darwin stream server的网址