2013-11-27 4 views
28

In questo momento sto rilevare la fine della mia ValueAnimator controllando quando il progresso ha raggiunto 100 ...rilevare quando ValueAnimator è fatto

//Setup the animation 
ValueAnimator anim = ValueAnimator.ofInt(progress, seekBar.getMax()); 

//Set the duration 

anim.setDuration(Utility.setAnimationDuration(progress)); 

anim.addUpdateListener(new AnimatorUpdateListener() 
{ 

    @Override 
    public void onAnimationUpdate(ValueAnimator animation) 
    { 
     int animProgress = (Integer) animation.getAnimatedValue(); 

     if (animProgress == 100) 
     { 
      //Done 
     } 

     else 
     { 
      seekBar.setProgress(animProgress); 
     } 
    } 
}); 

E 'questo il modo corretto? Ho letto i documenti e non ho trovato nessun tipo di listener o callback per quando è stato completato. Ho provato a utilizzare isRunning() ma non ha funzionato bene.

risposta

88

Si può fare qualcosa di simile:

ValueAnimator anim = ValueAnimator.ofInt(progress, seekBar.getMax()); 
anim.setDuration(Utility.setAnimationDuration(progress)); 
anim.addUpdateListener(new AnimatorUpdateListener() 
{ 
    @Override 
    public void onAnimationUpdate(ValueAnimator animation) 
    { 
     int animProgress = (Integer) animation.getAnimatedValue(); 
     seekBar.setProgress(animProgress); 
    } 
}); 
anim.addListener(new AnimatorListenerAdapter() 
{ 
    @Override 
    public void onAnimationEnd(Animator animation) 
    { 
     // done 
    } 
}); 
anim.start(); 

[s ']

+1

Questo è esattamente quello che stavo cercando, grazie – Tyler

+0

Grazie mille :) – Alex

+0

Questo è un argomento molto vecchia, mi dispiace , ma sto avendo un problema legato a questo. Sto usando un listener per rilevare quando la mia animazione è terminata, ma è in esecuzione prima che l'animazione sia terminata. Qualcun altro si è imbattuto in questo? Ho visto argomenti con qualcosa di simile per l'animazione di una vista personalizzata e il suggerimento era di sovrascrivere il metodo 'AnimationFinished', ma questo non funziona per un animatore di valori. –