【问题标题】:how to update thumbnails preview of android gallery after image edited图像编辑后如何更新android画廊的缩略图预览
【发布时间】:2012-01-31 18:48:33
【问题描述】:

可能重复

Refreshing the thumbnail using MediaScanner

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

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

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

编辑

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

【问题讨论】:

标签: android android-gallery


【解决方案1】:

我找到了解决此问题的方法,在您请求新缩略图之前,您需要删除旧缩略图。为此使用 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,只需创建 File 并从中解析 URI

Uri uri = Uri.fromFile(file);

【讨论】:

    【解决方案2】:

    两个建议。

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

    【讨论】:

    • 我正在使用 Intent 打开 android 内置图库,而不是以编程方式创建图库
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多