图像编辑后如何更新android画廊的缩略图预览
Posted
技术标签:
【中文标题】图像编辑后如何更新android画廊的缩略图预览【英文标题】:how to update thumbnails preview of android gallery after image edited 【发布时间】:2012-01-31 18:48:33 【问题描述】:可能重复
Refreshing the thumbnail using MediaScanner
我在更新内置图库中的 android 中的缩略图时遇到了问题。实际上,我已经打开、编辑并保存了在图库中选择的图像。
我打开离开画廊并再次打开画廊,然后该图像的缩略图未更新。但是,我选择了图像,确实是编辑后的版本。
有人对此有解决方案吗?我进行了搜索,但我得到了关于使用 sendBroadcast()
刷新图库的答案,这似乎不会更新图像预览。
编辑
我不想删除现有文件,因为假设用户想用不同的名称保存文件,那么该文件不受影响
【问题讨论】:
***.com/questions/7805527/…的可能重复 @Pratik 请问,你有答案吗? 【参考方案1】:两个建议。
试试getThumbnail。从 javadoc 中,我希望它能够重新生成最新的缩略图。 如果这不能更新缩略图,请尝试删除缩略图。【讨论】:
我正在使用 Intent 打开 android 内置图库,而不是以编程方式创建图库【参考方案2】:我找到了解决此问题的方法,在您请求新缩略图之前,您需要删除旧缩略图。为此使用 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);
【讨论】:
以上是关于图像编辑后如何更新android画廊的缩略图预览的主要内容,如果未能解决你的问题,请参考以下文章