我想延迟一些动画的开始。因此,当动画不重复时,我们可以轻松使用startOffset
属性。问题是我有一个无限重复的动画。但是我必须延迟启动它,所以当我使用startOffset
时,动画总是重复那个不是我想要的延迟。另外,我不想使用Handler
来创建延迟。
修改
我从未使用过ObjectAnimator。我的代码如下所示,但它没有动画。我的错是什么?
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationX", 1000, -1000);
objectAnimator.setDuration(ANIMATION_DURATION);
objectAnimator.setRepeatMode(ValueAnimator.RESTART);
objectAnimator.setRepeatCount(ValueAnimator.INFINITE);
objectAnimator.setStartDelay((5 - i) * INTERVAL);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(objectAnimator);
animatorSet.start();
答案 0 :(得分:1)
如果您在res / drawable文件夹中的XML文件中使用VectorDrawable和AnimatedVectorDrawable,并在res / animator文件夹中的objectAnimator文件中定义了动画,则startOffset延迟仅在重复期间首次使用。重复是立竿见影的。另一方面,如果你希望动画每次重复都以延迟开始,那么我相信动画和重置工作。