Android - 如何为随机数设置动画?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android - 如何为随机数设置动画?相关的知识,希望对你有一定的参考价值。

我想用动画制作0-9的随机数。我尝试使用ValueAnimator,但没有运气。

这是我没有ValueAnimator的代码(作品):

final int min = 0;
final int max = 9;
final int random = new Random().nextInt((max - min) + 1) + min;
randomSting = String.valueOf(random);
mNumberView.setText(randomSting);

这是与ValueAnimator不起作用(不起作用):

animator = ValueAnimator.ofInt(0, 9);
    final int min = 0;
    final int max = 9;
    final int random = new Random().nextInt((max - min) + 1) + min;
    randomSting = String.valueOf(random);
    cTimer = new CountDownTimer(3000, 1000) {
        public void onTick(long millisUntilFinished) {

            animator.setDuration(3000); 
            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                public void onAnimationUpdate(ValueAnimator animation) {
                    mNumberView.setText(animation.getAnimatedValue().toString());
                }
            });
            animator.start();
        }

        public void onFinish() {
            animator.cancel();
            mNumberView.setText(randomSting);
        }
    };
    cTimer.start();

mNumberView无法将文本设置为randomString

如果可能的话,用随机数制作数字动画师,而不是使用ValueAnimator

答案

此代码将每1秒生成9到0之间的随机数。

final int min = 0;
final int max = 9;
final int duration= 1000;

final Handler handler = new Handler();

        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                int random = new Random().nextInt(max - min + 1) + min;
                handler.postDelayed(this,duration);
            }
        };
        handler.post(runnable);

以上是关于Android - 如何为随机数设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Android 同步状态图标设置动画?

如何为 Flutter SliverList 中的元素设置动画?

如何为 UILabel 字体更改设置动画?

如何为导航栏设置 CAGradientLayer 动画

如何为 JQuery addClass/removeClass 函数设置动画?

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?