将所有drawables图标作为数组获取

时间:2014-12-01 16:05:21

标签: android arrays drawable

有没有办法让drawable文件夹中的所有图标?我正在寻找类似于从SD卡上的文件夹中获取所有文件的方式,例如:

    ArrayList<File> file = new ArrayList<File>();
    File mediaStorageDir = new File(
            Environment
                    .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
            "directoryName");

通过剪切,您可以获取名为directoryName的文件夹中的所有文件,该文件夹位于phones pictures文件夹中。

所以我希望有这样的事情:

Drawable[] d = getResources().getDrawables() //But this way you could only get one drawable through its id

可以轻松访问assets文件夹中的所有文件,以便注意drawables:

        String[] files = null;
        AssetManager assetManager = getActivity().getAssets();
        try {
            files = assetManager.list("BookFrames");
        } catch (IOException e) {
            e.printStackTrace();
        }

我可以将图片存储在assets文件夹中并使用上面的代码段获取所有图片,但是,我希望创建一个额外的res文件夹,我将存储我的所有图像按钮,以及我在我使用的其他图片应用程序。这样做的好处是我可以存储具有不同分辨率的图片,并且希望android能够为特定的屏幕分辨率返回正确大小的图像。

目前的情况。我正在创建一个自定义适配器,其中包括书籍封面的图片,并且为了防止在某些屏幕上看起来很小的图片,我需要包括许多封面的分辨率。通过使用drawable目录我让android负责显示哪些分辨率,因此我需要一种方法将所有drawables作为列表填充我的适配器(希望android会为我选择合适的图片分辨率)。

我看到了这一步How to display list of resource drawables 这显示了一个方法来做到这一点,但使用该方法,它将获得所有的图片(我不认为Android将选择适当的结果与该方法,它将只收集所有图片)。

想象一下制作一张记忆游戏,每张卡片都是一张图片,为了让你在不同的屏幕上看起来很好看,你需要很多分辨率来拍摄这些照片。因此将这些图片放在drawable中会让android引擎处理选择。而且您不需要代码来检查用户的屏幕大小。但也许最好使用下面的并检查使用的屏幕分辨率而不是选择合适的资产文件夹?

assets/pictures/xhdpi/frame1
                hdpi/frame1

0 个答案:

没有答案