开发动画需要多少工作量
动画是优化场景过渡体验的一个重要手段,在各种 APP 中随处可见。作者就以Android系统为例,介绍最基本的4种动画:位移动画、缩放动画、渐隐渐现动画和旋转动画。这4种动画虽然效果不同,但都作用在控件上。
1.位移动画
位移动画就是让控件在一段时间内不断改变位置。程序员在实现这个功能时,只需要创建一个“TranslateAnimation”的对象,可以把它理解成位移动画的“配置清单”。其中至少有以下几项:
(1)动画开始时控件的起始位置。
(2)动画结束时控件要到达的位置。
(3)动画的持续时间。
“清单”配置完毕后,让控件执行启动动画的命令(startAnimation),系统就会根据默认的插值算法,在动画的持续时间内,计算每一帧中控件对应的位置,然后将其绘制在屏幕上。
2.缩放动画
缩放动画就是让控件在一段时间内不断改变自身大小。与位移动画类似,这种动画也有一个“配置清单”:
(1)动画开始时控件的缩放倍率。
(2)动画结束时控件的缩放倍率。
(3)动画的持续时间。
对于动画启动后的每一帧,系统都会计算当前时间控件对应的缩放率,也就是动画的执行过程。控件除了配置以上三项,还可以配置缩放的原点,如果使用控件的左上角作为缩放原点,动画看起来是向左上角收缩的。将原点设置到不同的位置会产生不同的缩放效果。
3.渐隐渐现动画
渐隐渐现动画就是在一定的时间内持续改变控件的透明度。显然,它也是有“配置清单”的:
(1)动画开始时控件的透明度。
(2)动画结束时控件的透明度。
(3)动画的持续时间。
(4)设置重复次数。
(5)设置重复模式。
细心的读者可能已经发现,这个“清单”里多了两项:设置重复次数(setRepeatCount)与设置重复模式(setRepeatMode)。前一项是指动画要重复执行几次,后一项是指重复执行时将动画逆序执行,即先放大,再做逆向的缩小。
4.旋转动画
旋转动画就是让一个控件在一段时间内围绕一个固定点旋转指定的角度。来看看它的“配置清单”:
(1)动画开始时控件的旋转角度。
(2)动画结束时控件的旋转角度。
(3)动画的持续时间。
与缩放动画一样,旋转动画也可以自定义旋转时的原点。如果不主动设置,则控件的左上角就是原点。
以上就是在Android系统中实现4种基本的控件动画的方式。要实现这几种动画,只需简单地按“清单”配置就可以,是不是比读者想象的简单?