2015-02-10 39 views
6

我想顯示手機中的所有照片並使用Picasso在gridview中顯示它們。問題是我不知道如何實現這一點。使用這種查詢所有手機中的照片Picasso加載所有手機照片的縮略圖

Currentyly IM:

Cursor cursor; 
    String[] columns = new String[] { 
      MediaStore.Images.ImageColumns._ID, 
      MediaStore.Images.ImageColumns.TITLE, 
      MediaStore.Images.ImageColumns.DATA}; 
    cursor = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
      columns, null, null, null); 
    int columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID); 
    int columnPath = cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA); 

而且MediaStore.Images.Thumbnails.getThumbnail獲得縮略圖的位圖注入到ImageView的。

我怎樣才能使用畢加索來實現它?

回答

4

很簡單。只需使用Uri.withAppendedPath來構建URI,然後將其提供給畢加索。後者將在內部使用其MediaStoreRequestHandler來獲取正確的圖像。

// Use the cursor you've defined (correctly) 
int columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID); 
Uri imageURI = Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, Integer.toString(columnIndex)); 
Picasso 
    .with(context) 
    .load(imageURI) 
    .fit() 
    .centerInside() 
    .into(imageView); 
+2

由於您提供'columnIndex'作爲要顯示的圖像的ID,因此無法獲得正確的縮略圖。使用默認投影,列索引爲0,因此您只需獲取媒體商店中的第一個縮略圖。 – 2016-03-02 14:24:39

相關問題