8

Mam animatora obiektów z nieskończonym trybem powtarzania. Chcę go przyspieszyć tylko przy pierwszym uruchomieniu ... nie za każdym razem, kiedy się powtarza.Infinite ObjectAnimator z interpolatorem ... Jak przyspieszyć tylko początkowy start?

Jak można to osiągnąć?

mój kod:

universeMovement1 = ObjectAnimator.ofFloat(universeImageView, "x", 0, sw); 
     universeMovement1.setDuration(UNIVERSE_MOVEMENT_TIME); 
     universeMovement1.setRepeatCount(ObjectAnimator.INFINITE); 
     universeMovement1.setRepeatMode(ObjectAnimator.RESTART); 
     universeMovement1.setInterpolator(new AccelerateInterpolator()); 

Odpowiedz

6

dodać detektor do animacji z metodzie onAnimationRepeat i ustawić interpolator powrotem do LinearInterpolator lub cokolwiek chcesz. Stąd, gdy się powtarza, nie będzie już przyspieszać.

animation.addListener(new AnimatorListenerAdapter(){ 
     @Override 
     public void onAnimationRepeat(Animator animation) { 
      animation.setInterpolator(new LinearInterpolator()); 
     } 
    });