基于SlidePanelLayout实现ResideMenu
2015-02-24 小文字
前言
代码获取
git clone https://github.com/avenwu/support.git
14年的时候曾经在csdn上看到过一篇介绍Android中ResideMenu实现的推荐项目,也分析了一把,详见Android控件源码分析–AndroidResideMenu菜单
,那时候QQ还没有redisemenu的效果。效果还是不错的,但是有一个确定就是不支持平滑拖动时对菜单,容器的控制,只是简单的动画实现。
项目灵感据说是来自于dribble网站上的两个交互设计原型:
相关链接如下:
1116265-Instasave-iPhone-App
https://dribbble.com/shots/1114754-Social-Feed-iOS7
现在QQ的侧滑ResideMenu效果和上面非常类似,同时支持平滑拖动的处理;
网络上也有一些高仿QQ策划效果的实现,比如基于HorizonalScrollView的,基于SlideMenu修改的,都是不错的思路;本文打算基于android 官方v4包进行扩展,还是更偏向使用官方的东西:)
下面是qq效果和自定义的效果:
实现
基于v4扩展包的SlidePanelLayout可以比较方便就实现需要的效果。
核心在于对互动状态的处理,SlidePanelLayout有一个setPanelSlideListener监听,类似于onScroll,通过这个回调可以很容易知道当前欢动的百分比,从而改变视图的位置,实现动画中效果。
需要注意的是这里用到了level 11以后的方法,所以如果要兼容11以前的设备可以用nineoldedroid做修改。
相关链接
- https://github.com/romaonthego/RESideMenu
- https://github.com/SpecialCyCi/AndroidResideMenu