【发布时间】:2012-02-22 20:05:15
【问题描述】:
如何计算可绘制文件夹中以“fr”开头的项目数?
背景;我想创建一个随机发生器来从 drawables 文件夹中选择一个随机图像。为了使其经得起未来考验,我想将随机化器的最大值设置为有资格挑选的项目数。
【问题讨论】:
标签: android resources drawable
如何计算可绘制文件夹中以“fr”开头的项目数?
背景;我想创建一个随机发生器来从 drawables 文件夹中选择一个随机图像。为了使其经得起未来考验,我想将随机化器的最大值设置为有资格挑选的项目数。
【问题讨论】:
标签: android resources drawable
与 Android 中的其他资源一样,可通过“R”类访问可绘制对象,该类只是包含静态整数字段的静态类的集合。除了使用反射之外,没有“获取所有可绘制名称”的方法(至少我不知道)。
你需要一个可绘制的 id 列表来随机化。您可以使用反射自动填充此列表:
import java.lang.reflect.Field;
...
Field[] fields = R.drawable.class.getFields();
List<Integer> drawables = new ArrayList<Integer>();
for (Field field : fields) {
// Take only those with name starting with "fr"
if (field.getName().startsWith("fr")) {
drawables.add(field.getInt(null));
}
}
通过这种方式,您可以获得您感兴趣的可绘制对象的 id 列表。您可以稍后在通常使用的地方使用这些 id,例如R.drawable.someResource
【讨论】: