2010-06-11 5 views
1

setImageResource 메소드를 사용하여 임의의 이미지를 설정하는 데 도움이 필요합니다. drawable 폴더에 photo0.jpg, photo1.jpg ... photo99.jpg라는 jpeg 파일이 있습니다. 는 다음과 같은 코드가 작동합니다Android : setImageResource를 사용하여 임의의 이미지 설정

int p = R.drawable.photo1; 
image.setImageResource(p); 

위 photo1.jpg을 표시하지만 임의의 이미지를 표시 할 것입니다. 다음을 시도했지만 작동하지 않습니다.

String a = "R.drawable.photo"; 
int n = (int) (Math.random()*100) 
String b = Integer.toString(n); 
String c = a+b; 
int p = Integer.parseInt(c);//checkpoint 
image.setImageResource(p); 

는 "R.drawable.photoXX는"검사 점에서 정수로 변경되지 않는 문자열처럼 보인다. 누군가 저에게 올바른 코드를 가르쳐 주시겠습니까? 미리 감사드립니다.

답변

5

오버 헤드 비용 때문에 이처럼 작동하는 데는 문자열이 상당히 악합니다. 안드로이드는 이미 정수형 ID를 제공하므로 int 배열에 모두 저장 한 다음 인덱스에 임의의 숫자를 사용하는 것이 좋습니다.

코드는 다음과 같을 것이다 : 여기

int imageArr[] = new int[NUM_IMAGES]; 

imageArr[1] = R.drawable.photo; 

//(load your array here with the resource ids) 

int n = (int)Math.random()*NUM_IMAGES; 

image.setImage(imageArr[n]); 

우리가 문자열 concats 발생 꽤 똑바로 앞으로 구현 및 우회 모든 창조와 파괴를 가지고있다.

+0

훨씬 더 버그가없고 완벽하게 작동합니다. 고맙습니다! –

0

아마도 에러가 여기

INT N = (INT) (인 Math.random() * 100)

풋 % 이하 *이

INT의 N = (int)를 추천 (수학 .random() % 100)

모든 숫자를 100 미만으로 얻으려면

+0

"*"작동하지만 고맙습니다. :) –

관련 문제