Проблема генерации случайной анимации - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь создать случайную анимацию для загрузки ImageView.Это работает, но только иногда.После того, как выбраны три анимации, он выдаст ArrayIndexOutOfBoundsException, и я не знаю почему.Если я поймаю исключение, три анимации будут выбраны случайным образом, тогда ни одна не будет загружена.

final int[] anim = { R.anim.anim_0, R.anim.anim_1, R.anim.anim_2,
            R.anim.anim_3, R.anim.anim_4, R.anim.anim_5 }; 

Random ran = new Random();

int i = ran.nextInt(6 - 1);

mAlbum.startAnimation(AnimationUtils.loadAnimation(
                        getBaseContext(), anim[i++]));

Ответы [ 2 ]

1 голос
/ 28 января 2012

почему я ++? я думаю, что вы хотели бы сделать это восстановить случайное число, а не просто увеличить ваш прошлый результат на единицу ....

mAlbum.startAnimation(AnimationUtils.loadAnimation(
                    getBaseContext(), anim[ran.nextInt(anim.length)]));
1 голос
/ 28 января 2012

Попробуйте anim[ran.nextInt(anim.length)] вместо.Это выберет число от нуля (включительно) до количества элементов в массиве (исключая) и предотвратит исключение.

int i = ran.nextInt(anim.length);
mAlbum.startAnimation(AnimationUtils.loadAnimation(
                    getBaseContext(), anim[i]));
...