Android      Android使用Scroller滚动器、scrollTo、scrollBy对布局的子元素左右侧滑动画   
文章目录  [隐藏]

《Android中使用Scroller实现非全屏宽度抽屉动画》中使用Scroller实现了一个侧滑动画效果。文中很多细节没说清楚同时有很多需求上的不足。

本例是一种使用Layout的属性对象实现的侧滑动画,仅实现根据手指滑动侧滑。





Aty的布局只有一个容器,其为一个自定义的RelativeLayout:

Aty的代码:



2个子布局:

每个布局的按钮都设置了onClick属性,用于执行Aty里的doScroll(View v)方法进行侧滑动画。

自定义RL侧滑类

首先是全局的滚动器、手指按下位置等:
    /** 滑动器 **/
    private Scroller scroller;
    /** 手指按下的屏幕位置 **/
    private PointF downPoint;
    /** 屏幕宽度 **/
    private int screenWidth;
    /** 容器aty **/
    private MainActivity parent;

* 使用Scroller滚动器响应按钮事件
* 使用scrollTo方法响应手指滑动事件
* 注意:执行scroller.startScroll或scrollTo时,是本布局的子内容滚动,而不是本布局自身

然后是添加子内容的方法:

接着是滚动器调用方法及相关处理

最终是Touch事件的处理
上面Scroller的使用都是为了响应按钮。这里才是手指触摸的处理。
因为scrollTo方法是本父容器对子内容的滚动,这个touch事件是被本父容器接收的,当top侧滑后,想要再随手指侧滑回来,应注意效果上看起来应该是按住top层滑回来。

手指按下

手指滑动

手指拿起

项目下载:注意为了上传方便android-support-v4.jar删除了,导入后记得替换。同时重写build project。
[download id="1679"]

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