본문 바로가기

프로그래밍/Android 짜투리 지식

[android] get resource id by String

내장된 resource를 가져오려면 약속된 key로 가져오게 된다.

가장 보편적으로 쓰는것이 파일이름이 image.jpg인 drawable에 대해

ImageView.setImageResource(R.drawable.image);


하지만 key를 모를경우, String으로 해당 resource를 찾아올 수 있다.



private static Drawable getResource(String resName, Context context)
			throws NameNotFoundException {

		Context resContext = context.createPackageContext(context.getPackageName(), 0);
		Resources res = resContext.getResources();

		int id = res.getIdentifier(resName + "48", "drawable", context.getPackageName());
		if (id == 0) {
			return res.getDrawable(R.drawable.page_white48);
		} else
			return res.getDrawable(id);
	}

.


7번째 줄이 핵심 

int android.content.res.Resources.getIdentifier(String name, String defType, String defPackage) 

Added in API level 1

name : resource의 이름 
getType : resource type(ex. drawable 등등) 
defPackage : resource를 가지고 있는 package



'프로그래밍 > Android 짜투리 지식' 카테고리의 다른 글

[android] dex index  (0) 2014.06.03
[android] 한줄 팁  (0) 2014.04.04
[android] ImageView Matrix  (0) 2014.01.09
[android] [API] dropbox  (0) 2014.01.06
java.lang.UnsupportedOperationException  (0) 2014.01.06