我正在编写一个应用程序,其中使用200多个图像放置在drawable文件夹中,所有这些文件遵循相同的命名约定thumb+X
要阅读/显示这些文件,一种方法是按照R.drawable.XXX
选择每个可绘制文件。
有没有办法使用循环或其他东西读取这些文件名。所以无论在drawable中更新多少文件,都不需要触摸源文件。
任何建议!
答案 0 :(得分:1)
您可以使用以下函数首先获取资源ID,如下所示:
int resource_id=getResources().getIdentifier("thumb"+x, "drawable", getPackageName());
假设您在Activity
内(getResources / getPackageName是Activity
方法)
然后如果您需要Drawable
Drawable myDrawable=getResources().getDrawable (resource_id);
请注意,按名称访问drawable的速度较慢,您不应滥用此方法。
答案 1 :(得分:0)
非常简单,首先要创建一个类似于字符串的值。
String name= "R.drawable.thumb";
现在循环播放
for(int i=1;i<=200;i++){
String resource = name + i;
try {
Class c = Drawable.class;
Field idField = c.getDeclaredField(resource);
int resourceDrwable = idField.getInt(idField);
} catch (Exception e) {
e.printStackTrace();
}
}
完成。
另一种方式是
int resourceId=Resources.getSystem().getIdentifier(pDrawableName, "drawable", "android");