如何在图像编辑后更新android画廊的缩略图预览

时间:2012-01-02 11:28:27

标签: android android-gallery

可能重复

Refreshing the thumbnail using MediaScanner

我对内置库中的android中的缩略图更新有疑问。实际上我已经打开,编辑并保存了在图库中选择的图像。

我打开画廊并再次打开画廊,然后该图像的缩略图不会更新。但是,我选择了图像,它确实是编辑过的版本。

有人对此有解决方案吗?我有搜索但我得到的答案是使用sendBroadcast()刷新图库,这似乎不会更新图片预览。

修改

我不想删除现有文件,因为假设用户想要保存具有不同名称的文件,那么该文件不会受到影响

2 个答案:

答案 0 :(得分:0)

两个建议。

  • 试试getThumbnail。从javadoc,我希望它能够重新生成最新的缩略图。
  • 如果没有更新缩略图,请尝试删除缩略图。

答案 1 :(得分:0)

我找到了解决此问题的方法,在您申请新缩略图之前,您需要删除旧缩略图。使用MediaStore和ContentResolver进行此操作

private static void removeThumbnails(ContentResolver contentResolver, long photoId) {
Cursor thumbnails = contentResolver.query(Thumbnails.EXTERNAL_CONTENT_URI, null, Thumbnails.IMAGE_ID + "=?", new String[]{String.valueOf(photoId)}, null);
for (thumbnails.moveToFirst(); !thumbnails.isAfterLast(); thumbnails.moveToNext()) {

    long thumbnailId = thumbnails.getLong(thumbnails.getColumnIndex(Thumbnails._ID));
    String path = thumbnails.getString(thumbnails.getColumnIndex(Thumbnails.DATA));
    File file = new File(path);
    if (file.delete()) {

        contentResolver.delete(Thumbnails.EXTERNAL_CONTENT_URI, Thumbnails._ID + "=?", new String[]{String.valueOf(thumbnailId)});

    }

}

你可以从它的URI获取photoId,从文件名中获取URI只需创建文件并从中解析URI

Uri uri = Uri.fromFile(file);