2015-04-04 5 views

risposta

57

È possibile utilizzare il ValueAnimator per questo:

private void startCountAnimation() { 
    ValueAnimator animator = ValueAnimator.ofInt(0, 600); 
    animator.setDuration(5000); 
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     public void onAnimationUpdate(ValueAnimator animation) { 
      textView.setText(animation.getAnimatedValue().toString()); 
     } 
    }); 
    animator.start(); 
} 
+0

sì, funziona bene. Ho implementato per animare l'incremento del valore e non ho trovato un modo semplice per impostare il tempo di durata. Invece, stavo interpolando il valore in base alla durata. Quindi il processo di incremento del valore può avvenire in 5 secondi. Questa funzione è abbastanza facile da usare. –

+0

Grazie! Frederik. –

+1

Prego! :) –

4

Date un'occhiata a this simple solution:

public void animateTextView(int initialValue, int finalValue, final TextView textview) { 
    ValueAnimator valueAnimator = ValueAnimator.ofInt(initialValue, finalValue); 
    valueAnimator.setDuration(1500); 
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
      textview.setText(valueAnimator.getAnimatedValue().toString()); 
     } 
    }); 
    valueAnimator.start(); 

} 
+0

Sì amico .... questa è una soluzione facile e perfetta ... ottima. Sono riuscito a implementarlo per alcuni punti di conteggio in base alle variabili in un piccolo gioco. Grazie mille per aver condiviso questo metodo. –