2014-09-05 118 views
0

我正在尝试使用MediaStore获取手机/平板电脑中的所有图像。我成功了。Android MediaStore缩略图不存在

String[] projection = new String[]{ 
      MediaStore.Images.Media.DATA, 
      MediaStore.Images.Media.BUCKET_DISPLAY_NAME 
    }; 
Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 
Cursor cur = activity.getContentResolver().query(images, 
      projection, // Which columns to return 
      "",   // Which rows to return (all rows) 
      null,  // Selection arguments (none) 
      ""   // Ordering 
    ); 
if (cur.moveToFirst()) { 
    String photo; 
    String album; 
    int bucketColumn = cur.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME); 
    int photoColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); 
    album = cur.getString(bucketColumn); 
    photo = cur.getString(photoColumn); 
}//Just parts of code 

我想创建带有MediaStore图像的GridView。


问题是当有很多照片时,它有点问题。我使用通用图像加载器,所以它确定,但我需要它真的非常快,所以我发现Android应该有他自己的缩略图存储在MediaStore.Images.Thumbnail中的图片,所以我不必创建自己的缩略图。

Get thumbnail Uri/path of the image stored in sd card + android

似乎并没有擦出火花。我查看了设备的外部数据库,没有任何东西。

回答

1

看看卢卡斯Rochas的冰沙库。这个库文件实现了快速滚动网格。我在我的播放列表管理器(谷歌播放)上使用它。 http://lucasr.org/2013/01/06/introducing-smoothie/

+0

谢谢你的答案,但我得到的是相当困难。我必须将图像放到gridview中,并且这些图像必须按拍摄时的日期排序(StickyGridHeader),并且在这里我必须设置图片。现在我正在使用Universal Image Loader,但它会加载完整的图像。这只是说我需要使用它的地方,可悲的是我明白冰沙不能做到这一点。 – TheLibrarianCz 2014-09-07 13:34:16

+0

如果你想加载图像,调整大小,以便它们适合你的网格,并快速滚动,冰沙库会为你做到这一点。排序与显示无关,因为您的查询应提供按需要排序的游标。 – Theo 2014-09-08 16:19:48