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的更多相关文章

  1. iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码

    iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView .UICollecti ...

  2. 仿QQ侧滑菜单<大自然的搬运工-代码不是我的>

    1.记录下效果图 2.二个工具类 package myapplication.com.myapplicationfortest.utils; import android.util.Log; /** ...

  3. android开发学习 ------- 仿QQ侧滑效果的实现

    需要做一个仿QQ侧滑删除的一个效果: 一开始是毫无头绪,百度找思路,找到  https://blog.csdn.net/xiaxiazaizai01/article/details/53036994  ...

  4. 再造 “手机QQ” 侧滑菜单(三)——视图联动

    代码示例:https://github.com/johnlui/SwiftSideslipLikeQQ 本 文中,我们将一起使用 UINavigationController 来管理主视图,并实现点击 ...

  5. 自定义控件?试试300行代码实现QQ侧滑菜单

    Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...

  6. 【转】仿QQ5.0侧滑菜单ResideMenu

    本文由孙国威 原创.如需转载,请注明出处! 原文:http://blog.csdn.net/manoel/article/details/39013095 为了后续对这个项目进行优化,比如透明度动画. ...

  7. 再造 “手机QQ” 侧滑菜单(一)——实现侧滑效果

    本系列文章中,我们将尝试再造手机QQ的侧滑菜单,力争最大限度接近手Q的实际效果,并使用 Auto Layout 仿造左侧菜单,实现和主视图的联动. 代码示例:https://github.com/jo ...

  8. Swift实战-小QQ(第2章):QQ侧滑菜单

    QQ侧滑实现架构:需要建立以下几个ViewController:1.XQBaseViewController 2.LeftViewController3.RightViewController4.Co ...

  9. 仿QQ发语音、图片选择、表情选择demo

    一款仿QQ发语音.图片选择.调用拍照.表情选择的demo git地址:https://github.com/PureLovePeter/pic.git.  喜欢的请 star  star star,共 ...

随机推荐

  1. vue移动端项目在手机上调试

    1.电脑和手机要连同一个wifi  一定是复制无线网的IP,而不是以太网的IP 2.在你的电脑上查找无线网络的ipv4地址: 查找方法:windows+r   然后再输入框里输入cmd 回车 会出现这 ...

  2. 【音乐欣赏】《JINGO JUNGLE》 - MYTH & ROID

    歌名:JINGO JUNGLE 作者:MYTH & ROID [00:19.82]Don’t go away 逃げ場はない [00:27.12]Oh why? You’re crying 嗤え ...

  3. Go函数高级

    1. 函数的数据类型 package main import "fmt" func main() { /* go语言的数据类型: 基本数据类型: int,float,bool,st ...

  4. blog主题——樱花

    贮存一下,blog代码 QAQ 页脚html <!--live2d--> <script src="https://blog-static.cnblogs.com/file ...

  5. 7、Maven插件

    什么是maven插件? maven 实际上是一类依赖插件执行的框架,每个任务实际上是由插件完成,Maven插件通常被用来 创建jar文件 创建war文件 编译代码文件 代码单元测试 创建工程文档 创建 ...

  6. python中文本的读写操作

    文本的操作 函数的排序操作: def func(i): return i[2] list=[('曹操',101,'c'),('吕布',100,'d'),('刘备',200,'l'),('大乔',50, ...

  7. 分布式一致性协议 --- Paxos

    问题 Paxos 到底解决什么样的问题,动机是什么 Paxos 流程是怎么样的? Paxos 算法的缺陷是什么 概述 Paxos 是分布式一致性算法,根据少数服从多数的原则多个节点确定某个数值.通过学 ...

  8. LFTP命令笔记

    安装 因为在OpenWrt命令行下scp传输文件很慢(只有2.5MB/s不到), 于是改用FTP下载. lftp是OpenWrt下的FTP客户端软件. 如果固件中未安装的话, 需要自己安装, 其依赖于 ...

  9. 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  10. 简单oracle查询语句转换为mongo查询语句

    可以将简单的单表查询语句转换成Mongo过滤条件 列: 1. db.demo.aggregate([ {"$match": {"$and": [{"p ...