2017-10-10 85 views
0

我想延迟一段时间来开始动画。所以,当动画不会重复时,我们可以很容易地使用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

'我也不想使用Handler来创建延迟' - 为什么? – azizbekian

+0

因为动画将被分配到许多视图和任何地方的任何地方,我必须删除所有动画。所以,如果我使用处理程序,那么我必须删除每个视图的回调。 –

+0

然后使用带有偏移量的AnimatorSet播放正常的重复动画 - 我认为这应该起作用 – pskink

回答

0

如果您在资源/文件夹绘制使用VectorDrawable和AnimatedVectorDrawable在XML文件中,并在RES /动画文件夹中的objectAnimator文件中定义动画则开始偏移延迟重复期间工作在第一场合没有。重复是立即的。另一方面,如果您希望动画以延迟开始,则每次重复动画时,我都会相信动画结束重置作品。