这个动画的效果如下描述,四个小球点击run按钮后:
1、2、3同时开始动,4在最后动
1、2同时匀速落地,且动画效果一模一样;
3加速落地后弹起,4和3效果一样,但在3动画结束后才开始。
本例主要示范如何使用clone函数克隆一个动画效果,但是克隆者和被克隆者的动画开始时间可以不同。
看代码:
1.button点击事件监听器
点击后,MyAnimationView类的实例animView调用自定义函数startAnimation,开始动画
2.自定义MyAnimationView类
- 构造函数:
(1)调用addBall函数添加四个ShapeHolder实例ball0-3,分别表示四个小球的动画。
(2)addBall:参见上一讲 Android ApiDemo学习(五)Animation——1 Bouncing Balls
- startAnimation:点击button后进入这个函数,开始动画!
(1)小球1的动画anim1:匀速掉下
(2)小球2的动画anim2:调用clone函数克隆anim1
(3)小球3的动画集s1:加速掉下,减速上去
(4)小球4的动画集s2:调用clone函数克隆s2
(5)动画集animation讲anim1、anim2、s1、s2都包含进去,其中anim1、anim2、s1同事发生,s2在s1结束之后发生
(6)开启动画集 animation.start()
- onDraw()
不断得到四个小球的ShapeHolder,通过平移画布达到绘制动画的效果。