AnimatorSet

在前面的文章中,我曾经讲过多个动画一起执行的方法。但是,对于一些自定义View中所带的动画来说1,那个太过简单,只能实现多个动画同时执行。而一些设计者会要求不同时间段执行动画来收获绚丽的复合动画。
那么,这里就要用到AnimatorSet这个类了。首先,我们看看这个类的具体用法:

ObjectAnimator a1 = ObjectAnimator.ofFloat(v,"translationX",0f,200f);
 ObjectAnimator a2 = ObjectAnimator.ofFloat(v,"translationY",0f,200f);
 ObjectAnimator a3 = ObjectAnimator.ofFloat(v,"rotation",0f,360f);
 //定义了三个动画
AnimatorSet set = new AnimatorSet();
                set.setDuration(1000);
//                set.playTogether(a1,a2,a3);//同时执行动画
//                set.setStartDelay(300);//延迟执行动画
//                set.playSequentially(a1,a2,a3);//顺序执行动画
                set.play(a1).with(a2);//a1、a2同时执行动画
                set.play(a3).after(a2);//a3在a2的后面
                //即a1、a2同时执行,a3最后执行
                set.start();

如上实例展示,我们可以很清晰地理解AnimatorSet的使用方法。
但是,在使用AnimatorSet时也需要注意一些地方:
animatorSet.play().with();也是支持链式编程的.但是animatorSet.paly(anim1).with(anim3).before(anim3).before(anim5);这样是不行的,系统不会根据你写的这一长串代码来决定动画的先后顺序。(其中链式编程就是在一行代码中连续调用一系列方法,但是这里如果连续调用一系列方法的话,系统无法判断动画执行的先后顺序,所以在使用AnimatorSet添加动画时要尽量避免这一行代码太过赘余,一般一次添加两个动画为好)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值