2015-02-10 22 views
6

Tôi muốn hiển thị tất cả các hình ảnh tạo thành điện thoại của tôi và hiển thị chúng trong GridView bằng Picasso. Vấn đề là tôi không biết cách thực hiện điều này.Picasso tải hình thu nhỏ của tất cả ảnh điện thoại

im Currentyly sử dụng này để truy vấn tất cả ảnh điện thoại:

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); 

Và MediaStore.Images.Thumbnails.getThumbnail để có được bitmap thumbnail để tiêm để ImageView.

Tôi có thể triển khai bằng Picasso bằng cách nào?

Trả lời

4

Khá đơn giản. Chỉ cần sử dụng Uri.withAppendedPath để xây dựng URI và sau đó cấp nó cho Picasso. Người thứ hai sẽ sử dụng nội bộ MediaStoreRequestHandler để tìm đúng hình ảnh.

// 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

Điều này sẽ không thu được hình thu nhỏ chính xác vì bạn đang cung cấp 'columnIndex' làm ID của hình ảnh hiển thị. Sử dụng phép chiếu mặc định, chỉ mục cột là 0, vì vậy bạn sẽ chỉ nhận được hình thu nhỏ đầu tiên trong cửa hàng phương tiện. –

Các vấn đề liên quan