android – 计算以特定字符串开头的drawable文件夹中的项目

前端之家收集整理的这篇文章主要介绍了android – 计算以特定字符串开头的drawable文件夹中的项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何计算以“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

猜你在找的Android相关文章