如何计算以“fr”开头的drawable文件夹中的项目数?
背景;我想创建一个随机函数来从drawables文件夹中选择一个随机图像.为了使其面向未来,我想将随机数发生器的最大值设置为可以选择的项目数.
解决方法
与
Android中的其他资源一样,drawable通过’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