Android从drawable加载图片

时间:2011-06-11 20:55:48

标签: java android

在我的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_开头的任何想法开始?

1 个答案:

答案 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
   }
}