无法生成随机动画

时间:2012-01-28 05:53:25

标签: java android animation random int

我正在尝试生成一个随机动画来加载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 个答案:

答案 0 :(得分:1)

请尝试使用anim[ran.nextInt(anim.length)]。这将选择从零(包括)到数组中元素数量(不包括)的数字,并将阻止异常。

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

答案 1 :(得分:1)

为什么i ++?我想你想要做的是重新生成随机数,而不是简单地将过去的结果增加一个....

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