(안드로이드) 파일명으로 리소스 가져오기

리소스 접근하는 방법이 여러가지가 있지만,

Bitmap testImg=BitmapFactory.decodeResource(res,R.drawable.testRes0);

이런식으로 파일 ID로 리소스를 읽어와 사용하는 방법이 보편적이다.
그러나 리소스가 많을 경우

testImg=new Bitmap[10];
for(int i=0;i<10;i++)
  testImg[i]=BitmapFactory.decodeResource(res,R.drawable.tesrRes0+i);


이런식으로 ID로 연산을 하여 읽어오다보면 ID가 꼬이는 경우 문제가 발생할 여지가 있다.
파일명이 순차적으로 되어 있다고 하더라도 이런식의 접근은 좋지 않은 방법이다.

이럴경우,

int tmpID;
testImge=new Bitmap[10];
for(int i=0;i<10;i++)
{
      tmpID=res.getIdentifier("testRes"+i,"drawable","com.android.android.test");
      testImg[i]=BitmapFactory.decodeResource(res,tmpID);
}

이런식으로 리소스 파일명으로 ID를 알아와 접근하는 방식을 사용할 수 있다.

"패키지명: 타입/ 리소스명",null,null
getIdentifier("com.android.android.test:drawable/testRes",null,null);

"리소스명","타입","패키지명"
getIdentifier("testRes","drawable","com.android.android.test");


댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기