之前我已经讲过了所有的Android属性动画,今天就讲讲,将这些动画组合起来使用。其实说到组合动画,总共就两种情况,一种是按顺序播放动画,一种是同时播放几个动画。
第一种,按顺序播放不同动画:
这个就是,先向右移动100像素,然后在移动后的位置再缩放。关键点,已经框选出来了。
当然,你也可以替换其他动画,我这里用移动动画,是因为移动动画,是最复杂,最需要计算的动画。
这里,就不多讲解了,结合我之前讲的,应该就能看懂了。
然后是第二种,同时播放:
这里,也很清晰,就是引入了一个AnimationSet。这个玩意,就是把几个动画,放到一个集合里面,然后,一起播放的。这个也没有什么好讲的,看代码就ok了。
下面,我要讲的是,之前一直没讲,但每次都出现了的东西,就是那些方法。
第一个,就是动画时间,其实这个,看名字就知道;
第二个就是动画的监听,这个在组合动画里面,相信,大家就看懂了;
第三个,这个要讲一讲了,这个东西,中文叫差值器。这个差值器,是什么东西呢?该怎么写呢?这个我不会按照官方给你讲,因为,可能听不懂。我就按照给菜鸟的方式讲这个玩意。在物理学当中,有匀速运动,加速运动,先加速后减速,先减速后加速,阻尼等等,这个差值器,就差不多是这么样子。
再举个例子,就那位移动画说好了,从一个地方移动到另外一个地方,可以匀速移动过去,也可以先加速后减速。
第四个方法,叫循环次数。0就是单次,1就是循环一次(就是播放两次的意思),而-1就表示一直循环;
第四个方法,表示循环的方式。就两种,一种是重新播放,一种是倒放。这个自己试试就知道效果了。
第五个方法,这里说一下,很多同学会理解有问题。最后一个方法的意思是,是否在动画结束后,停留在当前位置。不过,这里,有一点需要说明的是,停留的是影像,不是真正的view。换句话说,你移动了一张图片到某个位置,在动画完毕的时候,你看到的这个图片是在移动后的位置并没有回到之前的位置。这就是,停留影像,但是,这个view依然在原来的位置。
ok,基本介绍就到这里,对于小白来说,这些也够消化一段时间了。
最后再附加默认的差值器
‘/** 差值器
* AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
AnticipateInterpolator 开始的时候向后然后向前甩
AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值
BounceInterpolator 动画结束的时候弹起
CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator 在动画开始的地方快然后慢
LinearInterpolator 以常量速率改变
OvershootInterpolator 向前甩一定值后再回到原来位置
*/
/**重复模式
* RESTART:重新从头开始执行。
REVERSE:反方向执行。
*/
’
还有我的这个demo的下载地址,有完整的代码,下载即可运行:
https://github.com/LuckyCode1992/viewaction
后记:关于属性动画,就到这里了。当然,属性的实现还有其他的方式,比如用xml写,用objectAnomation等。但是,我只讲,我觉得好用的方式。并且,我这种方式可以实现,另外两种的全部效果,但是,另外两种要实现,我这种方式能实现的效果,代价会比较大,对于小白来讲,我这种方式,是最好的方式。
后面,我会讲路径path动画。这个会比较难,但我依然是以让小白懂的方式讲。
敬请期待
网友评论