任务Runnable
有几个需要延迟处理的地方用到了Handler+Runnable组合,即调用Handler的postDelayed方法延迟若干时间再执行指定的Runnable任务。这几处延迟处理主要是为了避免资源冲突,不过延迟处理更多用于动画界面的渲染。
Runnable接口可声明一连串任务,定义了接下来要做的事情。简单地说,Runnable接口就是一个代码片段。实现Runnable接口只需重写run函数,在该方法内部存放要运行的任务代码。run函数无须显式调用,在启动Runnable实例时就会调用对象的run方法。 尽管基本视图View提供了post与postDelayed方法用于启动Runnable任务,不过实际开发中经常利用 Handler启动任务。下面是Handler处理Runnable任务的常见方法说明:
- post:立即启动Runnable任务。
- postDelayed:延迟若干时间后启动Runnable任务。
- postAtTime:在指定时间启动Runnable任务。
- removeCallbacks:移除指定的Runnable任务。
下拉刷新动画
把计时器引入下拉刷新中,每隔若干时间展示逐步加大的视图偏移,从而实现下拉刷新头部的下拉动画。
圆弧进度动画
绘制圆弧动画的主要思路是在一段指定的时间内持续不断地绘制一个扇形或圆弧,连起来整个画面就 会动起来。还要进行一些参数设置,如设置该圆圈的位置、开始和结束的角度、转动的速率,以及画笔的 颜色、粗细、样式等。另外,为了区分处理动画的背景和前景,还要分别构造背景视图(用于衬托动画) 和前景视图(用于展示圆弧)。