有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android从drawable加载图像

在我的安卓项目中,我在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文件夹中加载所有图像,我需要能够列出它们,并测试它们是否以我的前缀开头uo有什么想法吗


共 (1) 个答案

  1. # 1 楼答案

    如果这种情况是动态发生的,而不是使用硬编码的值,那么速度会慢很多

    不过,您可以尝试在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
       }
    }