【问题标题】:read all image files in gallery on android在 android 上读取图库中的所有图像文件
【发布时间】:2013-05-29 04:16:19
【问题描述】:

当我从以下两个位置读取时,只读取了部分照片:

File appStorage = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File externalStorage = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

例如,下载的照片不会被读取。但是,如果我手动打开图库应用,我会在其中看到我的所有照片。

那么我如何阅读图库中的所有图片?基本上,我在哪里看?

编辑:

我真的认为我的问题很明显,但由于某种原因,人们似乎被困在ACTION_PICK 上。我正在寻找我所说的我在上面寻找的东西。如果我想使用ACTION_PICK,我会使用以下代码:

public void dispatchGalleryIntent(View view) {
        Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(gallery, LOAD_IMAGE_REQUEST_CODE);
    }

我不需要我的用户从图库中挑选图像。不,我需要的是应用程序本身加载图库中的所有图像。我真的不知道该怎么说。

注意:

如果需要进一步说明,这里是我用来阅读我在 OP 中提到的文件的代码(即 appStorageexternalStorage):

void addFiles(final File parent, Set<File> images) {
    try {
        for (final File file : parent.listFiles()) {
            if (!file.isDirectory()) {
                images.add(file);
            } else {
                addFiles(file, images);
            }
        }
    } catch (Exception e) {
    }
}

【问题讨论】:

  • 尝试通过给出绝对路径直接从 sdcard 读取
  • @Srikanth 我不明白这个建议。我的应用程序正在尝试查找用户库中的所有图像。我怎么知道绝对路径是什么?
  • 你只是想打开画廊供用户选择吗?你可以有意识地做到这一点
  • @JRowan:不。这正是我的意思。我不是在寻找Intent.ACTION_PICK
  • 你应该看看 Android 的 MediaStore API。 MediaScanner 为您完成所有扫描并将其保存在 ContentProvider 中。您可以查询结果。 developer.android.com/reference/android/provider/…

标签: android android-intent gallery android-gallery


【解决方案1】:

试试下面的

File file = Environment.getExternalStorageDirectory();

您需要过滤正确的扩展名,例如jpg, png, etc

编辑:

你是对的。我的不是一个很好的解决方案,因为您会得到各种奇怪的图像,您甚至不知道设备上存在这些图像。我只是想把人们引向正确的方向,所以也许有更好信息的人可以回答你。

另一方面,在我的特定设备上,如果我省略 Android 子目录(如 /storage/sdcard0/Android/...),我的所有图像都很好。但我不能说这是最终答案,因为我现在不知道其他设备会如何表现。您基本上需要知道画廊应用程序是如何做到的,或者更好的是如何搭载画廊应用程序并获得它所看到的一切。也许通过使用某种我不知道如何使用的光标。

【讨论】:

  • +1 用于解决我的问题。当我尝试返回带有图像扩展名的任何内容时,例如墙纸。如果你尝试过,你就会明白我的意思。但我想要显示在用户画廊子文件夹中的图像,仅此而已。基本上,我不希望用户能够在他们的图库中看到我的应用程序无法显示的图像。但除了这些之外没有其他图片。
  • 我尝试使用Android 过滤器。垃圾确实大大减少了,但我仍然在我的设备上从DCIM 获得一些图像。不知道用户可能会从其他非图库目录中看到什么。
猜你喜欢
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 2015-08-12
  • 1970-01-01
  • 2015-07-01
  • 2014-08-26
  • 1970-01-01
相关资源
最近更新 更多