【问题标题】:Trouble generating a random animation无法生成随机动画
【发布时间】:2012-02-21 00:46:22
【问题描述】:

我正在尝试生成一个随机动画以加载 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++]));

【问题讨论】:

  • 你为什么有i++

标签: java android animation random int


【解决方案1】:

改用anim[ran.nextInt(anim.length)]。这将选择一个从零(包括)到数组中元素数(不包括)的数字,并将防止异常。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 2021-09-14
      • 2014-07-02
      • 1970-01-01
      相关资源
      最近更新 更多