你们知道是否可以从Uri获取资源ID?
例如来自
Uri soundUri = Uri.parse("android.resource://" + packageName + "/raw/" + name);
得到相当于这个
R.raw.name
谢谢你们!
答案 0 :(得分:1)
如果问题是是否可以通过编码中给出的名称获得资源ID,那么 - 是的。
getIdentifier( name , "raw" , packageName );
然而轻轻地说。它使用反射,因此如果您使用proguard可能很容易破坏。你被警告了。
答案 1 :(得分:1)
imageView.setImageResource(context.getResources().
getIdentifier(name, "raw", context.getPackageName()));
您也可以使用此
public static int getResId(String variableName, Class<?> c) {
try {
Field idField = c.getDeclaredField(variableName);
return idField.getInt(idField);
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
比getIdentifier