我在 drawable 文件夹中放置了 10 张图像,并创建了一个自定义类,其中的实例包含一个 id Integer,该 id 整数应该将其引用到 draw 文件夹中的图像。现在我想知道如何一次设置这些 id-s,而不是一个一个地设置。相反:
object[0].setImage(R.drawable.image1);
object[1].setImage(R.drawable.image2);
我想用循环来做这个,但是怎么做呢?
最佳答案
众所周知,
Drawable
id 是在 final class R
的静态类中生成的。所以直接用反射读取这些静态属性的值就可以了。如果您想获取 Int id,请使用此代码:
for(Field f : R.drawable.class.getDeclaredFields()){
if(f.getType() == int.class){
try {
int id = f.getInt(null);
// read the image from the id
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e){
e.printStackTrace();
}
}
}
或者,如果您想直接通过图像名称进行搜索,您可能会对以下字段的名称属性感兴趣:
for(Field f : R.drawable.class.getDeclaredFields()){
if(f.getType() == int.class){
try {
String name = f.getName();
// rest of the code handling file loading
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
关于Android访问drawable文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25632984/