Android重复缩略图问题



我正在创建一个自定义图像和视频库,就像Whatsapp必须允许用户选择多个图像/视频一样,到目前为止我正在填充和显示gridview上的缩略图。但结果是,在一些设备上,图像有时会被复制,而在另一些设备上则不会。视频库也是如此。

我正在查询来自

的图像的ID
 MediaStore.images 

和使用

获取缩略图
MediaStore.images.thumbnails.getThumbnail 

from已获取的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);
            }

from android documentation getThumbnail应该创建一个不可用的缩略图。

产生相同问题的一个例子是MediaStore.Images.Thumbnails.getThumbnail返回错误的缩略图而不是NULL,但那个家伙还没有找到解决方案(问题是2年前问的)。

有没有人遇到过这个问题,我已经经历了许多例子,并添加更多的我在asynctask加载光标,所以填充缩略图应该不是android操作系统的问题,我猜。这个问题有解决方案吗?

我不确定你是否已经找到了解决你的问题,但我有一个类似的问题。我的app返回的缩略图uri没有指向任何东西。但是对thumbailutils . createvideothumbnail()的调用将修复内容解析器中的引用。我最终在我的应用程序中添加了如下内容:

Bitmap bitmap = Thumbnails.getThumbnail(mActivity.getContentResolver(), videoFile.mId,
                                        Thumbnails.MINI_KIND, null);
if (bitmap == null) {
   ThumbnailUtils.createVideoThumbnail(videoFile.mAbsolutePath, Thumbnails.MINI_KIND);
}

然后我告诉我的适配器更新受影响的元素

最新更新