【问题标题】:How to implement increasing number animation from 0 to 600 in 5 secs on TextVIew on android如何在Android上的TextVIew上在5秒内实现从0到600的数字动画
【发布时间】:2015-04-04 07:12:19
【问题描述】:

我计划在特定秒内通过动画在 textView 上实现整数从 0 增加到某个值。 例如,在 textview 上显示将数字从 0 增加到 600 持续 5 秒的动画。

我该如何实现?

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: android animation textview


【解决方案1】:

您可以为此使用ValueAnimator

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】:

    看看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】:

    使用 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】:

      我在这里为 Kotlin 开发者提供答案:

       fun startAnimation(textView: TextView) {
          val animator = ValueAnimator.ofInt(0, 600) 
          animator.duration = 5000 // 5 seconds
          animator.addUpdateListener { animation ->
              textView.text = animation.animatedValue.toString()
          }
          animator.start()
      }
      

      【讨论】:

        【解决方案5】:
        猜你喜欢
        • 1970-01-01
        • 2016-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 1970-01-01
        相关资源
        最近更新 更多