我正在创建一个自定义图像和视频库,就像 Whatsapp 必须允许用户选择多个图像/视频一样,到目前为止,我正在填充并在 gridview 上显示缩略图。但结果是,在某些设备上,图像有时会重复显示有些他们没有。同样的情况也发生在视频库中。
我正在查询图像的 ID
MediaStore.images
并使用获取缩略图
MediaStore.images.thumbnails.getThumbnail
从获得的 ID
下面是我的代码
final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
final String orderBy = MediaStore.Images.Media.DATE_ADDED;
imageCursor = activity.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,null, orderBy+" DESC");
int image_column_index = imageCursor.getColumnIndex(MediaStore.Images.Media._ID);
int count = imageCursor.getCount();
thumbnails = new Bitmap[count];
arrPath = new String[count];
Log.d("count ", ""+count);
int i=0;
for ( i= 0; i <count; i++)
{
imageCursor.moveToPosition(i);
int id = imageCursor.getInt(image_column_index);
int dataColumnIndex = imageCursor.getColumnIndex(MediaStore.Images.Media._ID);
thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(context.getContentResolver(), id,MediaStore.Images.Thumbnails.MICRO_KIND, null);
arrPath[i]= imageCursor.getString(dataColumnIndex);
}
来自android 文档的 getThumbnail 如果不可用,应该创建缩略图。
产生相同问题的一个示例是MediaStore.Images.Thumbnails.getThumbnail 返回错误的缩略图而不是 NULL,但那个人还没有找到解决方案(问题是 2 年前提出的)。
有没有人遇到过这个问题,我已经经历了很多例子,并添加了更多我在 asynctask 中加载光标,所以填充缩略图对于 Adroid OS 来说应该不是问题,我猜。这个问题有解决方案吗?这很令人沮丧。