如果我知道一个图像的名字(在 Android 中) ,我如何得到它的资源 id?
像这样的东西:
String mDrawableName = "myappicon"; int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
你也可以试试这个:
try { Class res = R.drawable.class; Field field = res.getField("drawableName"); int drawableId = field.getInt(null); } catch (Exception e) { Log.e("MyTag", "Failure to get drawable id.", e); }
我已经从下面的 URL 复制了这个源代码。根据在这个页面中完成的测试,它比 getIdentifier ()快5倍。我还发现它更方便,更容易使用。希望对你也有帮助。
链接: < a href = “ http://daniel-codes.blogspot.com/2009/12/Dynamic-撷取-Resources-in.html”> 在 Android 中动态检索资源
您可以使用此函数获取资源 ID:
public static int getResourseId(Context context, String pVariableName, String pResourcename, String pPackageName) throws RuntimeException { try { return context.getResources().getIdentifier(pVariableName, pResourcename, pPackageName); } catch (Exception e) { throw new RuntimeException("Error getting Resource ID.", e) } }
所以如果你想得到一个 可以画资源 ID,你可以这样调用这个方法:
getResourseId(MyActivity.this, "myIcon", "drawable", getPackageName());
(或来自一个片段) :
getResourseId(getActivity(), "myIcon", "drawable", getActivity().getPackageName());
对于 绳子资源 ID,您可以这样称呼它:
getResourseId(getActivity(), "myAppName", "string", getActivity().getPackageName());
等等。
小心 : 如果找不到资源 ID,它会抛出一个 RuntimeException。
看看这个
公共系统资源示例:
// this will get id for android.R.drawable.ic_dialog_alert int id = Resources.getSystem().getIdentifier("ic_dialog_alert", "drawable", "android");
另一种方法是参考 机器人,可以画类的文档。
我遇到的另一个情况是。
字符串 imageName = “ Hello” 然后当它被传递到 函数作为第一个参数时,它将传递具有字符串 null 终止的名称,并且总是返回零。 把这个递给我 Substring (0,imageName.length ()-1)