Android      Android中使用Scroller实现非全屏宽度抽屉动画   
文章目录  [隐藏]

TranslateAnimation

使用TranslateAnimation操作控件位移比较常用,但如果被操作的对象需要发生交互,就有可能出现问题。因为控件执行完毕TA动画后,其可视的位置并不是物理位置,实际其物理位置没有发生变化。如果此时交互(如点击事件),会发生点击看到的控件没反应,而点击动画前的位置有反应。
处理这个问题,只要在动画事件结束后重写布局一下即可



一般使用TA制作抽屉动画,都在移动整个屏幕宽度的距离。但如果移动距离不是整个屏幕宽度,还要进行交互,当继续使用TA进行复位时,有可能会出现闪屏的现象(当复位时,TA会将控件先移出屏幕,再执行动画移动),愚尚未解决。

Scroller

另一种抽屉动画实现是使用Scroller,关于此兄,搜索引擎可详查。
使用流程一般是:
1)自定义一个布局,如public class ScrollerLinearLyt extends LinearLayout
2)在其中定有一个Scroller属性,private Scroller scroller;
并初始化

3)自定义一个执行动画的方法

4)重写一个方法

5)使用


Scroller和Touch事件的结合

类似于SlidingMenu的效果,以及SlidingUI相关。随着手指的滑动执行抽屉动画。一个的也是自定义一个布局类,在其中处理touch事件。




尚有欠佳之处,望不吝赐教

承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设