从资源或原始文件夹中获取多个图像的资源标识符(resId)到一个int数组



我有100多个图像加载到listView,我试图将所有的resId存储到int[]中。我可以通过使用下面的代码

drawable完成它
Field[] ID_Fields = R.drawable.class.getFields();
        resArray = new int[ID_Fields.length];
        for(int i = 0; i < ID_Fields.length; i++)
        {
            try {
                resArray[i] = ID_Fields[i].getInt(null);
            } catch (IllegalArgumentException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

但我的问题是,我不需要drawable文件夹中的所有图像为我的listView。所以我可以在asset中创建一个文件夹,并将所有resId放入int[]中吗?或者我可以使用raw文件夹吗?

我知道答案了。

是的,我们能做到。复制图像到res/raw文件夹,并尝试使用以下代码

Field[] ID_Fields = R.raw.class.getFields();
        resArray = new int[ID_Fields.length];
        for(int i = 0; i < ID_Fields.length; i++)
        {
            try {
                resArray[i]= ID_Fields[i].getInt(null);
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

之后,resArray包含raw文件夹中图像的resId

这是可能的,但这对你来说不是一个好方法。您可以将图像放在资产文件夹中像这样看这里

但是如果你这样做,可能会产生问题问题

现在就看你怎么用了。:)

最新更新