【发布时间】:2011-02-02 01:29:06
【问题描述】:
我想在列表中显示所有资源可绘制对象,以便用户可以选择一个。有什么方法可以遍历所有 R.drawable 项目,这样我就不必将它们硬编码到我的程序中?
【问题讨论】:
标签: android
我想在列表中显示所有资源可绘制对象,以便用户可以选择一个。有什么方法可以遍历所有 R.drawable 项目,这样我就不必将它们硬编码到我的程序中?
【问题讨论】:
标签: android
使用可绘制类的 getFields 方法,您可以遍历整个可绘制对象列表。
Field[] drawables = android.R.drawable.class.getFields();
for (Field f : drawables) {
try {
System.out.println("R.drawable." + f.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
参考:http://www.darshancomputing.com/android/1.5-drawables.html
【讨论】:
android.R 将只提供 Android SDK 中的原生可绘制对象。要获取您应用的可绘制对象,请使用com.example.appname.R
R.font.class.getFields() 效果很好。
如果您查看生成的 R.drawable 对象内部,您会看到 ID 是连续的,在我的情况下(可能是您的),从 0x7f020000 开始。由于它们似乎是按 alpha 排序的,您可能可以添加虚拟图像 AAAAAAA.png 和 ZZZZZZ.png 并专门在两个 ID 之间进行迭代。
我不能赞同你尝试这样做的原因,但我认为这会奏效。
【讨论】: