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. expdp定时备份

    1.创建用户所需的永久表空间和临时表空间 create tablespace tbs_hankey_dat datafile '/opt/oracle/oradata/tbs_hankey.dbf' ...

  2. 【C语言】用指针描述数组,实现选择法排序

    #include <stdio.h> int main() { ], t; int i, j, max; printf("请输入10个数:\n"); ; i <= ...

  3. JS中的解构

    先看看数组解构: function fn(){ return [1,2,3]; } var [a,b,c] = fn(); console.log(a,b,c); // 1 2 3 var [d,,f ...

  4. oracle imp exp 导入导出

    一.exp导出 exp myuser/mypwd@orcl file=D:\sql-bak\myuser.dmp log=D:\sql-bak\myuser.log exp 用户/密码@实例名 fil ...

  5. java.net.URISyntaxException: Illegal character in query at index 147

    这是url出现了特殊字符,需要将特殊字符进行替换

  6. 粪发涂墙-java1

    相信很多人和笔者一样,经常会做一些数组的初始化工作,也肯定会经常用到集合类.假如我现在要初始化一个String类型的数组,可以很方便的使用如下代码: String [] strs = {"T ...

  7. 面试问烂的 Spring AO,全文详解

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  8. Springmvc-crud-04错误(路径变量)

    错误: 原因:接收不到restful风格请求的参数(id值),需要添加路径变量注解 @RequestMapping(value="/book/{id}",method=Reques ...

  9. 01-书城http状态405-此url不支持http方法get

    错误: http状态405-此url不支持http方法get 原因:

  10. December 31st, Week 53rd Tuesday, 2019

    Nothing comes from nothing. 天下没有免费的午餐. Nothing comes from nothing, and in some cases, even something ...