繁体   English   中英

刷新图库中的图像缩略图

[英]Image Thumbnail Refresh in Gallery

对于我的应用程序,我需要刷新图库的缩略图。

因为每当我更新图像内容时,该内容都不会反映在缩略图上。 缩略图图像显示的是第一次图像创建数据,而不是当前图像。

但是实际图像包含新数据,因此我也需要将其反映到缩略图中。 在这个论坛上徘徊后,我发现以下代码片段删除器删除了当前缩略图,但由于无法获取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);

之后,我在缩略图图标中获得了新内容。

您没有提及您拥有的类和继承; 如果您在继承BaseAdapter的类中,则可以

notifyDataSetChanged();

改变拇指之后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM