如鹏网仿QQ侧滑菜单:ResideMenu组件的使用笔记整理+Demo
ResideMenu菜单 课堂笔记:
https://github.com/SpecialCyCi/AndroidResideMenu
Github:如何使用开源组件
1. 下载
下载方式:
1. 项目首页右下角"Download ZIP"按钮
2. 安装Git,git clone:git地址
2. 将组建自己的工程在同一个目录下
3. 附加类库,建立依赖
(其他比较好的开源组件: ArcMenu SlidingMenu PullRefreshListView )
ArcMenu:https://github.com/daCapricorn/ArcMenu
SlidingMenu:https://github.com/jfeinstein10/SlidingMenu
PullRefreshListView:https://github.com/johannilsson/android-pulltorefresh
Android平台下非常常见的三种菜单组件:
Sildingmenu :https://github.com/jfeinstein10/SlidingMenu
DrawerLayout
Residemenu:https://github.com/SpecialCyCi/AndroidResideMenu
附加第三方类库的过程:
1. 右键点击自己的工程
2. 选择“Properties“
3. 在”Properties“的Android选项卡中 add ,选择类库;
(建立依赖的过程就是:关联依赖后,在androi depen... 先多了一个jar)
类库工程和普通工程的区别:
1. 清单文件只有minSDK,没有Activity等组件
2. project.properties 文件中含: isLibrary=true
3. 无法直接运行
(一):ResideMenu开源组件基本用法:
1.创建对象
ResileMenu menu = new ResideMenu(this);
2.设置
设置背景图片:menu.setBackground(R.drawable.menu_background);
设置缩放度:menu.setScalarValue(); // 参数:float类型:0.0 ~ 1.0之间,表示缩放程度,建议:0.6f,默认0.5f
3. 将menu对象附加到Activity:menu.attachToActivity(MainActivity.this);
// 注意:这句代码必须在创建 ResideMenuItem之前执行
4. 创建ResideMenuItem对象,并添加到menu中:
// 左侧
ResideMenuItem item1 = new ResideMenuItem(this, R.drawable.icon_home, "首页");
menu.addMenuItem(item1, ResideMenu.DIRECTION_LEFT);
ResideMenuItem item2 = new ResideMenuItem(this, R.drawable.icon_calendar, "日历");
menu.addMenuItem(item2, ResideMenu.DIRECTION_LEFT);
// 右侧
ResideMenuItem item3 = new ResideMenuItem(this, R.drawable.icon_profile, "个人信息");
menu.addMenuItem(item3, ResideMenu.DIRECTION_RIGHT);
ResideMenuItem item4 = new ResideMenuItem(this, R.drawable.icon_settings, "设置");
menu.addMenuItem(item4, ResideMenu.DIRECTION_RIGHT);
5. 绑定按钮点击事件:
menu.openMenu(directory) //打开菜单,参数:ResideMenu.DIRECTION_RIGHT 或者 ResideMenu.DIRECTION_LEFT
(二):自定义侧边布局
步骤:
1. 新建布局文件 @layout/layout_menu_left.xml (以左侧布局为例,右侧同理)
注意:
1. 布局文件必须是全透明(设置根布局的属性android:background:#00000000)
2. 根布局文件最好设置为宽度150dp(设置属性:android:layout_width="150dip")
3. 只需要左侧布局,禁用右侧布局的方法:三个层次:
1. 构造方法传递-1(用户还是可以通过滑动和执行openMenu方法的按钮打开)
2. 设置 menu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);,用户不能滑动打开,但是可以通过按钮打开
3. 取消打开右侧布局的事件
2. ResideMenu menu = new Resimenu(this, R.layout.layout_menu_left, -1);
// 第一个参数:上下文
// 第二个参数:布局文件的ResourceId (没有就传-1)
// 第三个参数:布局文件的ResourceId (没有就传-1)
3. 设置背景图片:menu.setBackground(R.drawable.menu_background);
4. 设置缩放度:menu.setScaleValue(0.6f);
ResideMenu的其他方法补充:
1. menu.setUse3D(true); // 实现3D效果
2. closeMenu(); // 关闭菜单,没有指定方向,哪一侧开启就关闭那一侧
3. 解决ResideMenu和Activity已有的可滑动组件冲突的解决方法:
重写Activity的dispatchTouchEvent方法
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
return menu.dispatchTouchEvent(ev);
}
// 附:如果需要知道原理,请参加如鹏网的培训课程
4. 给侧边栏的菜单按钮设置点击事件:
menu.getLeftMenuView(); // 可以获取的对应布局的View


Demo 下载地址:http://pan.baidu.com/s/1c00Vgkw
如鹏网仿QQ侧滑菜单:ResideMenu组件的使用笔记整理+Demo的更多相关文章
- iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码
iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView .UICollecti ...
- 仿QQ侧滑菜单<大自然的搬运工-代码不是我的>
1.记录下效果图 2.二个工具类 package myapplication.com.myapplicationfortest.utils; import android.util.Log; /** ...
- android开发学习 ------- 仿QQ侧滑效果的实现
需要做一个仿QQ侧滑删除的一个效果: 一开始是毫无头绪,百度找思路,找到 https://blog.csdn.net/xiaxiazaizai01/article/details/53036994 ...
- 再造 “手机QQ” 侧滑菜单(三)——视图联动
代码示例:https://github.com/johnlui/SwiftSideslipLikeQQ 本 文中,我们将一起使用 UINavigationController 来管理主视图,并实现点击 ...
- 自定义控件?试试300行代码实现QQ侧滑菜单
Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...
- 【转】仿QQ5.0侧滑菜单ResideMenu
本文由孙国威 原创.如需转载,请注明出处! 原文:http://blog.csdn.net/manoel/article/details/39013095 为了后续对这个项目进行优化,比如透明度动画. ...
- 再造 “手机QQ” 侧滑菜单(一)——实现侧滑效果
本系列文章中,我们将尝试再造手机QQ的侧滑菜单,力争最大限度接近手Q的实际效果,并使用 Auto Layout 仿造左侧菜单,实现和主视图的联动. 代码示例:https://github.com/jo ...
- Swift实战-小QQ(第2章):QQ侧滑菜单
QQ侧滑实现架构:需要建立以下几个ViewController:1.XQBaseViewController 2.LeftViewController3.RightViewController4.Co ...
- 仿QQ发语音、图片选择、表情选择demo
一款仿QQ发语音.图片选择.调用拍照.表情选择的demo git地址:https://github.com/PureLovePeter/pic.git. 喜欢的请 star star star,共 ...
随机推荐
- linux建立动态库的软链接
复制动态库: /home/wmz/anaconda3/lib/ 删除原链接: 建立新链接: /home/wmz/anaconda3/lib/libstdc++.so. 问题的起源是,安装anacond ...
- Drawer 侧边栏、以及侧边栏内 容布局
一.Flutter Drawer 侧边栏 在 Scaffold 组件里面传入 drawer 参数可以定义左侧边栏,传入 endDrawer 可以定义右侧边栏.侧边栏默认是隐藏的,我们可以通过手指滑动显 ...
- maven中的pom.xml中的scope的作用
pom.xml配置文件中, <dependency>中的<scope>,它主要管理依赖的生效范围.目前<scope>可以使用5个值: * compile,缺省值,适 ...
- 素问 - 信贷和GDP
摘自<小韭的学习圈> Q:近期看到2019年金融统计数据,全年人民币贷款增加16.81万亿元,同比多增6439亿元.这里有个问题我储备好久了,没有高人指点俺.请问2019年全年GDP近10 ...
- 单机架设传奇服务器第47课:定时器OnTimer功能详解
传奇定时器OnTimer功能详解(泡点.时间触发.任务活动) 定时器功能,是服务端中非常常见的一种功能,常见如:泡点脚本.赌博脚本,任务活动指定时间刷怪,时间触发一些都需要用到OnTimer功能,定时 ...
- Nginx做缓存
查看服务 netstat -lntp|grep 80 Nginx作为缓存WEB服务 通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后端压力,提高网站并发延时 Nginx代理缓存原理 ...
- WordPress 安装教程
1.要安装WordPress,先看他的环境要求 2.环境符合后,直接去官网下载 WordPress(点击去官网) 下载最新的安装包 3.下载解压后,直接在浏览器中访问 会自动跳转到安装界面 http: ...
- 获得APP的包名package和activity
方法一: Aapt dumpbadging xxxx.apk(包的路径) 第一个框为包名 第二个框为主Activity名 方法二: 如果你装了Appium 可以这么操作下 进入设置页,选择APK 路 ...
- TensorFlow卷积神经网络实现手写数字识别以及可视化
边学习边笔记 https://www.cnblogs.com/felixwang2/p/9190602.html # https://www.cnblogs.com/felixwang2/p/9190 ...
- drat笔记
安装dart https://www.dartcn.com/install http://www.cndartlang.com/920.html 所有执行的方法都在main里面. main() {} ...