2016-10-11 2 views
-2
<?xml version="1.0" encoding="utf-8"?> 
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:propertyName="rotationX" 
    android:valueFrom="0" 
    android:valueTo="-360" 
    android:repeatCount="infinite"> 
</objectAnimator> 

Это мой объект аниматор XMLObjectAnimator задержка повторного цикла

//Animating the NormalLayout 
    final ObjectAnimator anim4 = (ObjectAnimator) //Object animator 
    AnimatorInflater.loadAnimator(this, R.animator.rotate_four); 
//And this is my java code 

Я хочу, чтобы добавить задержку между его зацикливание, как 3 секунды между снова зацикливание. Я попробовал прослушивание анимации onRepeat, onEnd рода, но это не сработало. Мне нужна задержка между циклами.

Любая помощь будет оценена по его предельному пределу.

+0

Перед тем, как задать вопрос, обратитесь к [как спросить] (http://stackoverflow.com/help/asking). Просто спроси, чего ты хочешь, ни чит-чат! –

ответ

0

пожалуйста, попробуйте 1.delete свойство XML android:repeatCount="infinite" 2.Add код Java

anim4.addListener(new AnimatorListenerAdapter(){ 
    @Override 
    public void onAnimationEnd(Animator animation) { 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       anim4.start(); 
      } 
     }, 3000); 
    } 
}); 
0

Вспомогательный класс:

public class DelayedAnimationRepeater implements Animator.AnimatorListener { 
    private long delayMillis; 

    public DelayedAnimationRepeater(long delayMillis) { 
     this.delayMillis = delayMillis; 
    } 

    @Override 
    public void onAnimationStart(Animator animator) { 

    } 

    @Override 
    public void onAnimationEnd(final Animator animator) { 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       // Start delay should only affect initial start, not repeats 
       animator.setStartDelay(0); 
       animator.start(); 
      } 
     }, delayMillis); 
    } 

    @Override 
    public void onAnimationCancel(Animator animator) { 

    } 

    @Override 
    public void onAnimationRepeat(Animator animator) { 

    } 
} 

Использование:

anim4.addListener(new DelayedAnimationRepeater(3000));