How to implement increasing number animation from

2019-01-30 16:38发布

问题:

I plan to implement integer number increase on textView from 0 to some value with animation within certain seconds. e.g show animation which increase number from 0 to 600 on textview for 5 seconds duration.

How can I implement this?

回答1:

You could use the ValueAnimator for that:

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();
}


回答2:

Take a look at 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();

}


回答3:

Use a ValueAnimator

TextView textview = findViewById(R.id.textview1);

ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 600);
valueAnimator.setDuration(5000);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
   @Override
   public void onAnimationUpdate(ValueAnimator valueAnimator) {
       textview.setText(valueAnimator.getAnimatedValue().toString());
   }
});
valueAnimator.start();


回答4:

Look here : Animate TextView to increase integer and stop at some point?

and a nice lib here : https://github.com/sd6352051/RiseNumber