2011-12-14 2 views
1

나는 1.jpg, 2.jpg ... 및 56.jpg라는 이미지를 가지고 있습니다. 또한 이전 목록 활동에서 선택된 항목에 따라 변수에 _id 값이 있습니다. 이미지를 표시하는 다음 코드가 있습니다. 내가하고 싶은 무엇안드로이드는 동적으로 이미지를 표시합니다.

ImageView image = (ImageView) findViewById(R.id.headerimage); 
image.setImageResource(R.drawable.image1); 

이 같은 _id의 예 : 값 .. 뭔가에 해당하는 이미지를 표시 동적인가?

ImageView image = (ImageView) findViewById(R.id.headerimage); 
image.setImageResource(R.drawable.myID + ".jpg"); 

어떻게하면됩니까?

건배,

마이크.

답변

2

예, 가능합니다.

그냥 Resouces.getIdentifier()을 사용하십시오. 이 구현은 느린 주의하십시오 그 ID를 사용하고 RESOURCEID가없는 경우 항상 확인 0 (당신이 종료되지 않습니다

예를 들어 요청 리소스 의미 :.

View view = //... 
int number = //...      
int resId = getIdentifier("files_"+number, "drawable", "com.my.project.package"); 
view.setBackgroundResource(resId); 
+0

을 감사합니다 Pedro, 완벽하게 작동했습니다! 그리고 Sander, 당신의 모범은 두 가지로 작용할 것이고 나는 옆으로 생각하는 것을 좋아하지만 150 개의 이미지를 가지고 있습니다. 건배, –

0

내가 아는 한, 당신은하지 않습니다. 나는 전에 비슷한 문제가 있었다. 찾을 수있다. here. 리소스 이름을 동적으로 참조하려고하면 안드로이드가 마음에 들지 않는 것처럼 보입니다. 나는 동적으로 참조하기를 원했던 모든 리소스를 Array에 넣음으로써 결국 그것을 고쳤습니다.

관련 문제