2012-01-28 2 views
0

ImageView으로로드 할 랜덤 애니메이션을 생성하려고합니다. 그것은 효과가 있지만 때로는. 3 개의 애니메이션이 선택되면 ArrayIndexOutOfBoundsException이 표시되며 이유는 확실하지 않습니다. 예외를 잡으면 3 개의 애니메이션이 무작위로 선택되고 아무 것도로드되지 않습니다.랜덤 애니메이션을 생성하는 중 문제가 발생했습니다.

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++])); 
+0

왜 'i ++'가 있습니까? – AppleGrew

답변

1

anim[ran.nextInt(anim.length)]을 대신 사용해보십시오. 배열의 요소 수 (0은 제외)부터 예외가 발생하지 않도록 숫자를 선택합니다.

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

i ++? 나는 당신이하고 싶은 것이 무작위 수를 재생성하는 것이라고 생각합니다. 단순히 과거의 결과를 하나씩 늘리는 것이 아닙니다. ...

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