2017-10-10 50 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文件中定義動畫則開始偏移延遲重複期間工作在第一場合沒有。重複是立即的。另一方面,如果您希望動畫以延遲開始,則每次重複動畫時,我都會相信動畫結束重置作品。