(안드로이드) 파일명으로 리소스 가져오기
리소스 접근하는 방법이 여러가지가 있지만,
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");
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");
댓글
댓글 쓰기