一起Talk Android吧(第四百九十一回:动画集合AnimatorSetBuilder)

文章介绍了AnimatorSetBuilder的概念和功能,它是AnimatorSet的子类,用于更灵活地控制动画播放顺序。通过with()、after()、before()方法可以精确调整多个动画的播放顺序。示例代码展示了如何创建和使用AnimatorSetBuilder来控制动画播放。相比于AnimatorSet,AnimatorSetBuilder提供了更细粒度的顺序控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


各位看官们大家好,上一回中咱们说的例子是"动画集AnimatorSet",这一回中咱们说的例子是" 动画集AnimatorSetBuilder"。闲话休提,言归正转,让我们一起Talk Android吧!

概念介绍

我们在前面章回中介绍了动画集AnimatorSet,本章回再介绍另外一个动画集AnimatorSetBuilder,它是AnimatorSet的子类,因此它具有AnimatorSet所有的功能,在这些功能的基础上它提供了其它方法,这样可以更加灵活地控制动画。它提供的方法主要用来控制动画集合中各个动画的播放顺序。

功能介绍

AnimatorSetBuilder提供的方法如下,主要用来控制集合中的各个动画的播放顺序:

with()    //表示和基准动画对象一起播放;
after()   //表示先播放完添加到动画集合中的动画然后再播放基准动画;
before()  //表示先播放基准动画然后再播放添加到动画集合中的动画;

这些方法的参数都是ObjectAnimator类型的对象,它们可以把动画添加到动画集合中。 注意这几个方法的作用和playTogether(),playSequentially()方法的作用相同,它们不能一起使用; 就是说不能同时在动画集合和动画集合的Buidler中添加 动画对象。使用Builder对象的优点在于可以控制动画的播放顺序,如果不需要播放顺序的话使用AnimatorSet就可以。

使用方法

  1. 创建Builder对象,该对象中包含一个基准动画;
  2. 在动画集合中添加其它动画对象;
  3. 设置动画集合相关的参数;
  4. 按照顺序播放动画集合中的动画;

创建Builder对象的方法为play(),注意:不是使用类的构造方法来创建类对象,play是AnimatorSet的方法,因此需要提前创建AnimatorSet对象。play()方法会在动画集合中创建一个基准动画,后续在动画集合中添加的动画都以它为基准;添加动画的方法有,with(),after(),before();这些方法我们已经介绍过了。

示例代码

    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.setDuration(3000);
    AnimatorSet.Builder builder = animatorSet.play(objectAnimator);
    builder.after(objectAnimator1);
    builder.before(objectAnimator1);
    animatorSet.start();

上面代码中的objectAnimator和objectAnimator1对象需要提前创建好,编译并且运行该程序就可以按照顺序播放objectAnimator和objectAnimator1中的内容了。我们在这里就不演示程序的运行结果了,请大家自己动手去实践,把添加动画的个方法都试试,自己体验一下它们在动画播放顺序上的区别。

对比总结

对比一下AnimatorSet和AnimatorSetBuilder后就会发现Builder还是使用AnimatorSet的动画集合,它只是提供了一些方法来控制动画播放顺序。因此它们在本质上相同,使用方法十分相似。在实际项目中我更加喜欢使用Builder,当然这只是个人习惯而已。

看官们,关于"动画集合:AnimatorSetBuilder"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值