Most visited

Recently visited

Added in API level 11

AnimatorSet.Builder

public class AnimatorSet.Builder
extends Object

java.lang.Object
   ↳ android.animation.AnimatorSet.Builder


Builder对象是一个实用工具类,可以方便地将动画添加到AnimatorSet以及各种动画之间的关系中。 Builder方法的意图以及Builderplay()方法的AnimatorSet是使得以自然的方式表达动画的依赖关系成为可能。 如果这些方法适合需要,开发人员也可以使用playTogether()playSequentially()方法,但在某些情况下,可能会更容易将动画的AnimatorSet成对表示。

Builder对象不能直接构建,而是通过调用 play(Animator)而内部 play(Animator)

例如,这设置了一个AnimatorSet来同时播放anim1和anim2,anim2在anim2完成时播放,anim4在anim3完成时播放:

     AnimatorSet s = new AnimatorSet();
     s.play(anim1).with(anim2);
     s.play(anim2).before(anim3);
     s.play(anim4).after(anim3);
 

在示例中注意使用了before(Animator)after(Animator) 这些仅仅是表达同样关系的不同方式,并且可以根据情况以更自然的方式说出事情。

可以将多个呼叫放入同一个Builder对象中以表示多个关系。 但是请注意,只有传入最初play(Animator)方法的动画play(Animator)Builder对象的任何连续调用的依赖关系。 例如,当anim1结束时,以下代码将启动anim2和anim3; anim2和anim3之间没有直接的依赖关系:

   AnimatorSet s = new AnimatorSet();
   s.play(anim1).before(anim2).before(anim3);
 
If the desired result is to play anim1 then anim2 then anim3, this code expresses the relationship correctly:

   AnimatorSet s = new AnimatorSet();
   s.play(anim1).before(anim2);
   s.play(anim2).before(anim3);
 

请注意,可以表达不能解决的关系,并且不会产生明智的结果。 例如, play(anim1).after(anim1)是没有意义的。 一般来说,应该避免像这样的循环依赖(或者更多的间接依赖于依赖于b的依赖于c的依赖于a的依赖)。 只创建AnimatorSets,可以归结为一个简单的,单向的动画关系的动画,在其他不同的动画之前,之后开始。

Summary

Public methods

AnimatorSet.Builder after(long delay)

设置创建此 Builder对象的 play(Animator)调用中提供的动画,以在给定的时间量过去时播放。

AnimatorSet.Builder after(Animator anim)

当在此方法调用中提供的动画结束时,创建此 Builder对象的 play(Animator)调用中提供的动画启动时,设置给定动画以播放。

AnimatorSet.Builder before(Animator anim)

当创建此 Builder对象的 play(Animator)调用中提供的动画结束时,设置给定动画以播放。

AnimatorSet.Builder with(Animator anim)

设置给定动画以与创建此 Builder对象的 play(Animator)调用中提供的动画同时播放。

Inherited methods

From class java.lang.Object

Public methods

after

Added in API level 11
AnimatorSet.Builder after (long delay)

设置创建此 Builder对象的 play(Animator)调用中提供的动画,以在给定的时间量过去时播放。

Parameters
delay long: The number of milliseconds that should elapse before the animation starts.
Returns
AnimatorSet.Builder

after

Added in API level 11
AnimatorSet.Builder after (Animator anim)

当在此方法调用中提供的动画结束时,创建此对象的 Builder对象的 play(Animator)调用中提供的动画开始时,设置给定动画以播放。

Parameters
anim Animator: The animation whose end will cause the animation supplied to the play(Animator) method to play.
Returns
AnimatorSet.Builder

before

Added in API level 11
AnimatorSet.Builder before (Animator anim)

当创建此 Builder对象的 play(Animator)调用中提供的动画结束时,设置给定动画以播放。

Parameters
anim Animator: The animation that will play when the animation supplied to the play(Animator) method ends.
Returns
AnimatorSet.Builder

with

Added in API level 11
AnimatorSet.Builder with (Animator anim)

设置给定动画以与创建此 Builder对象的 play(Animator)调用中提供的动画同时播放。

Parameters
anim Animator: The animation that will play when the animation supplied to the play(Animator) method starts.
Returns
AnimatorSet.Builder

Hooray!