마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

R.raw.xx00 의 값들을 한번에 load 방법

0 추천

 

/res/raw 안에

a00.mp3

a01.mp3

a02.mp3

a03.mp3

a04.mp3

a05.mp3

 

값을 넣었습니다.

 

OnCreate 할시

 

SoundPool을 통해 load를 하려고하는데

 

일일이 

lists[0] = mSoundPool.load(getBaseContext(), R.raw.a00, 1);

lists[1] = mSoundPool.load(getBaseContext(), R.raw.a01, 1);

lists[2] = mSoundPool.load(getBaseContext(), R.raw.a02, 1);

...

..

 

이렇게 하드코딩 해야 하나요? 

 

아래 처럼 하려고 해도 

for(int i=0; i<5;i++)
 lists[i] = mSoundPool.load(getBaseContext(), R.raw.a00 + i, 1);

 

raw파일에 a000pic.png 파일이 있으면 R.java의 값들 중간중간에 다른 파일이 껴들어서  에러날 수 있어서 못하겠더군요.

내가용아 (150 포인트) 님이 2013년 5월 8일 질문

1개의 답변

+1 추천
 
채택된 답변

 

resourceId 를 받아와서 로드하는 방법을 이용하면 됩니다.
 
Resources res = context.getResources();
String packageName = context.getPackageName();
 
for(int i=0;i<5;i++){
String name = String.format("a%02d", i);
int resid = res.getIdentifier(name, "raw", packageName);
int sndId = soundPool.load(context, resid, 0);
}
kfmes (900 포인트) 님이 2013년 5월 8일 답변
내가용아님이 2013년 5월 8일 채택됨
...