我想在手机上显示所有照片,并使用Picasso在gridview中显示它们。问题是我不知道如何实现这个。
当前我正在使用它查询所有手机照片:
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。
我如何使用Picasso实现它?
答案 0 :(得分:4)
非常简单。只需使用Uri.withAppendedPath
构建URI,然后将其提供给Picasso。后者将在内部使用其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);