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

Posted talk_8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第四百九十一回:动画集合AnimatorSetBuilder)相关的知识,希望对你有一定的参考价值。

文章目录


各位看官们大家好,上一回中咱们说的例子是"动画集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"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

以上是关于一起Talk Android吧(第四百九十一回:动画集合AnimatorSetBuilder)的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第四百九十二回:精简版动画)

一起Talk Android吧(第四百九十三回:动画知识总结)

一起Talk Android吧(第四百九十四回:在Android中使用MQTT通信四)

一起Talk Android吧(第四百九十五回:如何使用Java版MQTT客户端)

一起Talk Android吧(第四百九十六回:自定义View实例二:环形进度条)

一起Talk Android吧(第四百九十九回:自定义View实例五:简约工具栏)