在Android中加载文件夹中的所有图像

时间:2011-10-17 11:15:17

标签: java android gridview

我想在不知道文件名的情况下将所有图像加载到文件夹中,并在运行时将它们存储到整数向量中。

实际上,我需要和本例中的相同:  http://developer.android.com/resources/tutorials/views/hello-gridview.html 但是在运行时并且不知道文件的名称。

任何帮助?


在你得到答案之后我知道该怎么做......但我不知道如何以与例子相同的方式继续下去:

我如何将图像保存为整数数组而不是可绘制数组或类似?这是我对drawable的尝试:DrawArray [i] = Drawable.createFromPath(fileArray [i] .getPath()); 但我想用整数来完成它以适应上面的链接!

提前致谢


一般解决方案: http://www.anddev.org/viewtopic.php?t=575

3 个答案:

答案 0 :(得分:9)

使用以下主题中的一些代码:

Load and display all the images from a folder

您可以使用标准方式,例如:

// array of supported extensions (use a List if you prefer)
    static final String[] EXTENSIONS = new String[]{
        "gif", "png", "bmp" // and other formats you need
    };
    // filter to identify images based on their extensions
   static final FilenameFilter IMAGE_FILTER = new FilenameFilter() {

    @Override
    public boolean accept(final File dir, final String name) {
        for (final String ext : EXTENSIONS) {
            if (name.endsWith("." + ext)) {
                return (true);
            }
        }
        return (false);
    }
   };

然后使用就是这样:

{
    ....
    File dir = new File(dirPath);
    File[] filelist = dir.listFiles(IMAGE_FILTER );
    for (File f : filelist)
    { // do your stuff here }
    ....
 }

答案 1 :(得分:5)

要获取特定文件夹的所有文件,请使用File - 类的list()-method,其中列出了指定目录的所有文件。

要创建位图(可以绘制),您可以使用BitmapFactory-class

之后,您需要创建自己的适配器(如链接教程中所示)以显示您的位图。

答案 2 :(得分:1)

您可以使用File类及其listFiles()方法返回给定位置中所有图像文件的列表。从那里只需获取该列表并从那里构建适配器。