动画TextView增加整数并在某些时候停止?

use*_*736 23 android

我有一个显示整数值的TextView.整数值从之前的活动转移,我想添加漂亮的动画.我想如果例如int值是73,我希望textView将显示的数字增加1到73,所以它将是1-2-3-4-5 ......等等.我该怎么做?

Ahm*_*Zah 89

我认为最好的解决方案是使用这种方法:

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

}
Run Code Online (Sandbox Code Playgroud)

  • 最好的功能!工作完美! (2认同)

Ped*_*ira 38

这是一个简单的函数,用于根据初始值和最终值为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(String.valueOf(finalCount));
                }
            }, time);
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 这家伙值得一个饼干 (13认同)