我正在使用 Nineoldandroid 动画。
我的代码如下:
Button mTarget;
Animator mTargetAnim;
AnimatorSet mTargetScaleAnimSet;
private void createAnimation() {
if (mTargetAnim == null) {
ObjectAnimator yAnim = ObjectAnimator.ofFloat(mTarget, "y",
mTarget.getY(), mTarget.getY() + 500).setDuration(3500);
yAnim.setRepeatCount(0);
yAnim.setRepeatMode(ValueAnimator.REVERSE);
yAnim.setInterpolator(new AccelerateInterpolator(2f));
yAnim.addListener(this);
ObjectAnimator xAnim = ObjectAnimator.ofFloat(mTarget, "x",
mTarget.getX(), mTarget.getX() + 500).setDuration(3500);
xAnim.setStartDelay(0);
xAnim.setRepeatCount(0);
xAnim.setRepeatMode(ValueAnimator.REVERSE);
xAnim.setInterpolator(new AccelerateInterpolator(2f));
// the first AnimatorSet
AnimatorSet xyAnimSet = new AnimatorSet();
xyAnimSet.playTogether(yAnim, xAnim);
mTargetScaleAnimSet = new AnimatorSet();
ObjectAnimator scaleXAnim = ObjectAnimator.ofFloat(mTarget,
"scaleX", 1f, 0f, 0.2f, 0f);
ObjectAnimator scaleYAnim = ObjectAnimator.ofFloat(mTarget,
"scaleY", 1f, 0f, 0.2f, 0f);
mTargetScaleAnimSet.playTogether(scaleXAnim,
scaleYAnim);
mTargetScaleAnimSet.setDuration(3000);
mTargetScaleAnimSet.addListener(this);
mTargetAnim = new AnimatorSet();
((AnimatorSet) mTargetAnim).playSequentially(xyAnimSet, mTargetScaleAnimSet);
mTargetAnim.addListener(this);
}
}
在第二个Animator(mTargetScaleAnimSet)开始之前,我调用end()方法结束整个AnimatorSet。但是,我发现 end() 方法不能结束 AnimatorSet 中的所有子 Animator。
问:所有儿童动画师如何按顺序播放?