【问题标题】:How to Use MediaStore to display all images in GridView如何使用 MediaStore 在 GridView 中显示所有图像
【发布时间】:2023-03-28 05:38:01
【问题描述】:

我需要一些帮助来解决我遇到的问题。我有一个应用程序可以查询手机上的所有图像并将它们显示在 GridView 中。我能够做到这一点并填充列表。问题是当我访问列表并从查询中的项目中获取信息时。光标告诉我该项目的文件路径为

/mnt/sdcard/images/media/file.jpg

但路径只有

/sdcard/images/media/file.jpg

这是我用来填充列表的代码。

        // Set up an array of the Thumbnail Image ID column we want
        String[] projection = {MediaStore.Images.Thumbnails._ID};
        // Create the cursor pointing to the SDCard
        //returns the cursor that checks the sdcard for Thumbnail id's
              cursor = managedQuery( 
                MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
                projection, 
                // Which columns to return
                null,
                // Return all rows
                null,
                MediaStore.Images.Thumbnails.IMAGE_ID);
              // Get the column index of the Thumbnails Image ID
              columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);

这些项目确实显示,但是当我从另一个光标检索它们时路径错误。 ??? 我有点迷茫。

我已经在模拟器和我的物理设备上使用过它。同样的问题。 我收到一条错误消息,指出路径为 NULL 并且程序崩溃了。

有没有办法让 MediaStore 查询 EXTERNAL_CONTENT_URI 并提供我需要的正确路径? 另外,当我在我的物理手机上使用它时,查询何时停止到我的 sdcard 上的第一个带有图像的目录,以及它查询更多目录的方法?

【问题讨论】:

    标签: android gridview cursor mediastore


    【解决方案1】:

    你试过MediaStore.Images.Media.EXTERNAL_CONTENT_URI吗?

    另外managedQuery() 已弃用,请使用getContentResolver().query()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-05
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      相关资源
      最近更新 更多