可能重复
Refreshing the thumbnail using MediaScanner
我对内置库中的android中的缩略图更新有疑问。实际上我已经打开,编辑并保存了在图库中选择的图像。
我打开画廊并再次打开画廊,然后该图像的缩略图不会更新。但是,我选择了图像,它确实是编辑过的版本。
有人对此有解决方案吗?我有搜索但我得到的答案是使用sendBroadcast()
刷新图库,这似乎不会更新图片预览。
修改
我不想删除现有文件,因为假设用户想要保存具有不同名称的文件,那么该文件不会受到影响
答案 0 :(得分:0)
两个建议。
答案 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);