
上QQ阅读APP看书,第一时间看更新
1.1.3 给图像添加水波特效
除了给图片添加静态装饰物,有时还想添加动态的特效,比如说水波涟漪特效。水波特效要求一个同心圆持续向外扩散,圆圈在数秒之内从圆心扩散到视图边缘,从而实现了涟漪扩散动画。这个持续扩散的操作可通过定时机制实现,简单地说,结合处理器工具Handler与任务工具Runnable由处理器对象定时执行刷新任务即可完成水波动画。
下面是基于图像视图实现水波特效的示例代码:
(完整代码见picture\src\main\java\com\example\picture\widget\RippleImageView.java)

同样在布局文件中添加RippleImageView节点,并在对应的活动页面调用startRipple方法,就能看到水波特效动画。运行并测试这个App,可观察到的水波涟漪效果如图1-7和图1-8所示。图1-7为水波刚开始扩散的画面,图1-8为水波扩散较大的画面。

图1-7 水波刚开始扩散的画面

图1-8 水波扩散较大的画面