Android - Как анимировать случайные числа? - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу сделать случайное число от 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 Ответ

0 голосов
/ 10 сентября 2018

этот код будет генерировать случайное число от 9 до 0 каждую 1 секунду.

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