【问题标题】:Why can't I see some of my pictures in the gallery?为什么我在图库中看不到我的一些照片?
【发布时间】:2014-08-20 15:28:31
【问题描述】:

我正在尝试使用 MediaStore.Images.Media.DATA 读取 SD 卡中存在的照片,但我总是得到一个空光标! 这是我用来阅读的代码:

final String[] columns = { MediaStore.Images.Media.DATA, 
    MediaStore.Images.Media._ID };

Cursor imagecursor = getContentResolver()
    .query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, 
    MediaStore.Images.Media.DATA + " like ? ", 
    new String[] { "%"+eventName.trim()+"%" }, null);

imagecursor.setNotificationUri(getContentResolver(), 
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

this.imageUrls = new ArrayList<String>(); 
Log.i("imagecursor.getCount()", Integer.toString(imagecursor.getCount()));

for (int i = 0; i < imagecursor.getCount(); i++) {
    imagecursor.moveToPosition(i);
    int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);
    imageUrls.add(imagecursor.getString(dataColumnIndex));
}

我当然添加了这个

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

到 AndroidManifest.xml

【问题讨论】:

    标签: android cursor sd-card mediastore


    【解决方案1】:

    我发现问题出在媒体扫描仪上,所以我使用一个名为 Scan Media 的简单应用程序解决了这个问题,该应用程序扫描外部存储,然后 MediaStore 将能够找到新元素。

    【讨论】:

      【解决方案2】:

      我不知道这是否会帮助你,但我正在努力工作

      String ExternalStorageDirectoryPath = Environment.getExternalStorageDirectory()
          .getAbsolutePath();
      
      String targetPath = ExternalStorageDirectoryPath + "/yoururl/";
      
      Toast.makeText(getActivity(), targetPath, Toast.LENGTH_LONG).show();
      File targetDirector = new File(targetPath);
      
      File[] files = targetDirector.listFiles();
      for (File file : files){
          myImageAdapter.add(file.getAbsolutePath());
      }      
      

      在此示例中,我获取图像并显示在网格视图中

      【讨论】:

      • 他正在将图片搜索到数据库中,而不是直接使用路径。
      猜你喜欢
      • 2021-03-20
      • 2012-08-18
      • 1970-01-01
      • 2011-09-27
      • 2019-12-12
      • 1970-01-01
      • 2020-05-22
      • 2019-04-01
      • 1970-01-01
      相关资源
      最近更新 更多