Анимация TextView для увеличения целого числа и остановки в какой-то момент?

У меня есть TextView, показывающий целочисленное значение. Целочисленное значение передается из предыдущего действия, и я хочу добавить приятную анимацию. Я хочу, если, например, значение int равно 73, я хочу, чтобы textView увеличивал показанный номер на 1 до 73, так что это было бы 1-2-3-4-5 … и т. Д. И т. Д. Как я могу это сделать?

Solutions Collecting From Web of "Анимация TextView для увеличения целого числа и остановки в какой-то момент?"

Вот простая функция для анимации текста textView в соответствии с начальным и конечным значением

public void animateTextView(int initialValue, int finalValue, final TextView textview) { DecelerateInterpolator decelerateInterpolator = new DecelerateInterpolator(0.8f); int start = Math.min(initialValue, finalValue); int end = Math.max(initialValue, finalValue); int difference = Math.abs(finalValue - initialValue); Handler handler = new Handler(); for (int count = start; count <= end; count++) { int time = Math.round(decelerateInterpolator.getInterpolation((((float) count) / difference)) * 100) * count; final int finalCount = ((initialValue > finalValue) ? initialValue - count : count); handler.postDelayed(new Runnable() { @Override public void run() { textview.setText(finalCount + ""); } }, time); } } 

Лучшим решением, на мой взгляд, является использование этого метода:

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

Я думаю, что этот проект в github – это то, что вы хотите: https://github.com/sd6352051/RiseNumber

RiseNumberTextView расширяет TextView и использует ValueAnimator для реализации эффекта роста числа.

Попробуйте этот код .. значение приращения с анимацией

 public class MainActivity extends Activity implements AnimationListener { private TextView textView; AlphaAnimation fadeIn, fadeOut; private static int count = 0, finalValue = 20; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.demo); textView = (TextView) findViewById(R.id.textView); fadeIn = new AlphaAnimation(0.0f, 1.0f); fadeOut = new AlphaAnimation(1.0f, 0.0f); fadeIn.setDuration(1000); fadeIn.setFillAfter(true); fadeOut.setDuration(1000); fadeOut.setFillAfter(true); fadeIn.setAnimationListener(this); fadeOut.setAnimationListener(this); textView.startAnimation(fadeIn); textView.startAnimation(fadeOut); } @Override public void onAnimationEnd(Animation arg0) { // TODO Auto-generated method stub Log.i("mini", "Count:" + count); runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub textView.setText("" + count); } }); if (count == finalValue) { textView.setText("" + finalValue); } else { ++count; textView.startAnimation(fadeIn); textView.startAnimation(fadeOut); } } @Override public void onAnimationRepeat(Animation arg0) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation arg0) { // TODO Auto-generated method stub } }