프로그래밍/Android 짜투리 지식
[android] get resource id by String
선제
2014. 2. 7. 13:46
내장된 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); } .
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