对于我的应用程序,我需要刷新图库的缩略图。
因为每当我更新图像内容时,缩略图上都不会反射(reflect)出来。缩略图显示第一次图像创建数据而不是当前图像。
但实际图像包含新数据,因此我也需要将其反射(reflect)到缩略图中。 在这个论坛闲逛后,我发现了以下代码 fragment 来删除当前缩略图,但我无法调用此函数,因为我无法获取 photoId。
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)});
}
}
目前我将这个函数称为
removeThumbnails(pexelMimics.getContentResolver(),
ContentUris.parseId(uri));
我认为这个技巧对我有用。但这是我的猜测。如果你们对这个问题有更好的解决方案,请帮助我。
最佳答案
在图片保存时,我必须提供以下代码来删除图片内容。
activity.getContentResolver().delete(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
MediaColumns.DATA
+ "='"
+ GameManager.getInstance().getSavedImageFilePath()
.replaceAll("'", "''") + "'", null);
在此之后,我在缩略图图标中获得了新内容。
关于android - 画廊中的图像缩略图刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691139/