在我的android项目中,我在drawable文件夹中有几个图像,带有我想在HashMap中加载的前缀:
示例:
PREFIX_G6.png
PREFIX_P7.png
PREFIX_P9.png
我可以构建特定图像的位图,如下所示:
String drawableName = "PREFIX_" + "G6"; // ignore the extension
int drawableId = context.getResources().getIdentifier(drawableName, "drawable", PACKAGE_NAME);
Bitmap icon = BitmapFactory.decodeResource(context.getResources(), drawableId);
mIcons.put(drawableName, icon); // my Hashmap
为了加载drawable文件夹中的所有图像,我需要能够列出它们并测试它们是否以我的PREFIX_开头的任何想法开始?
答案 0 :(得分:2)
如果这是动态发生而不是使用硬编码值,那将会慢得多。
尽管如此,您可以尝试在R类上使用java反射(警告:未经测试)
Class cls = R.drawable.class;
Field fieldlist[] = cls.getDeclaredFields();
for (Field fld : fieldlist) {
String fieldName = fld.getName();
if (fieldName.startsWith("PREFIX_") {
int drawableId = fld.getInt(null);
// do whatever with the drawable
}
}