2012-06-30 1 views
0

Android에서 게임을 만들 때 OpenGL ES를 사용하고 있습니다. 튜토리얼에서 코드를 얻었고 앱에 맞게 코드를 변경하려고했지만 문제가 있습니다. 리소스 이름으로 함수에 전달 된 문자열을 사용하여 이미지 리소스를 동적으로 가져 오려고합니다. 이 경우 getIdentifier()를 사용하는 것이 일반적이지만 int를 반환하고 입력 스트림이 필요합니다. 리소스에서 입력 스트림을 동적으로 가져 오는 방법이 있습니까?getIdentifier가없는 Android에서 리소스의 동적 이름 지정

또는 더 좋은 방법이 있습니까? 아래

코드 :

InputStream is = mContext.getResources().openRawResource(R.drawable.<imagename>); 

Bitmap bitmap; 
try { 
     bitmap = BitmapFactory.decodeStream(is); 
} 
finally { 
     try { 
      is.close(); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 
+0

나는 내 대답을 업데이트했습니다 – Khan

답변

1

네 u는 u는 첫째

String[] imgarray={"img1","img2","img3","img4","img5","img6","img7"}; 
public static String PACKAGE_NAME ; 
PACKAGE_NAME=getApplicationContext().getPackageName(); 
Random r = new Random(); 
int n=r.nextInt(imgarray.length()); 
int resID = getResources().getIdentifier(PACKAGE_NAME+":drawable/" +imgarray[n] , null, null); 
imageview.setImageResource(resID); 
같은 배열을 보다 img1로, IMG2, img3, img4, img5, img6, img7 명명와 당김에 저장된 이미지가 있다고 가정 할 수

유 기타를 원하는 경우 단지 라인

Bitmap bm = BitmapFactory.decodeResource(getResources(),resID); 

아래 추가보다 비트 맵 이미지를 원하는 경우 방법보다 적은 코딩으로 대답을 참조하십시오 Other Example

+0

비트 맵을 만들기 위해 필요하므로 입력 스트림을 어떻게받을 수 있습니까? –

+0

굉장하고, 매력처럼 일했습니다. 건배! –