我正在编写一个应用程序,其中使用放置在可绘制文件夹中的200 +图像,所有这些文件都遵循相同的命名约定,例如thumb+X
要读取/显示这些文件,一种方法是通过以下R.drawable.XXX
选择每个可绘制文件。
有没有办法使用循环或其他东西读取这些文件名..因此,无论它将在可绘制对象中更新多少文件,都无需触摸源文件。
任何建议!
您可以使用以下函数首先获取资源 ID,如下所示:
int resource_id=getResources().getIdentifier("thumb"+x, "drawable", getPackageName());
假设你在Activity
内(getResources/getPackageName是Activity
方法)
然后,如果您需要Drawable
Drawable myDrawable=getResources().getDrawable (resource_id);
请注意,按名称访问可绘制对象的速度较慢,因此不应滥用此方法。
非常简单,
首先创建一个字符串值。
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");