加载“drawable-nodpi”文件夹中包含的所有图像

时间:2018-02-04 19:54:30

标签: android

我正在使用Android中的一个简单应用,我想加载“drawable-nodpi”文件夹中包含的所有图像。我试过使用这段代码:

public static void load() {
    Field[] ID_Fields = R.drawable.class.getFields();
    int[] resArray = new int[ID_Fields.length];
    for(int i = 0; i < ID_Fields.length; i++) {
        try {
            resArray[i] = ID_Fields[i].getInt(null);
            //System.out.println(ID_Fields[i].getName());
        } catch (...) {...}
    }
}

但是R.drawable.class.getFields()我无法选择“drawable-nodpi”文件夹。有一种简单的方法可以做到吗?

我的minSdkVersion是14

1 个答案:

答案 0 :(得分:0)

仅提供最后使用的解决方案,这是我的代码:

public static void loadAll() { //called in the app creation phase
    HashMap<String, Integer> tmpHM=new HashMap<>();
    Field[] ID_Fields = R.drawable.class.getFields();
    for(int i = 0; i < ID_Fields.length; i++) {
        try {
            tmpHM.put( ID_Fields[i].getName(), ID_Fields[i].getInt(null));
        } catch (IllegalAccessException e) {
        }catch (IllegalArgumentException e) { }
    }

    database_img= new HashMap<>();
    String[] tmp=Texts.getNamesImg();
    for(String s:tmp){
        database_img.put(s, loadImg(tmpHM.get(s)) );
    }
    //System.out.println("DATABASE: "+database_img.toString());
}

private static Bitmap loadImg(int id){
    bp=BitmapFactory.decodeResource(context.getResources(),id, null);
    return bp;
}

当我想要一个特定的图像时,可以使用存储在静态类“文本”中的名称找到它:

public static Bitmap getImage(String s){ //For example getImage(Texts.LOGO)
    return database_img.get(s);
}