Как обновить превью превью галереи Android после редактирования изображения - PullRequest
1 голос
/ 02 января 2012

возможный дубликат

Обновление миниатюры с помощью MediaScanner

У меня проблема с обновлением миниатюр в андроиде во встроенной галерее. На самом деле я открыл, отредактировал и сохранил изображение, которое было выбрано в галерее.

Я открываю, покидаю галерею и снова открываю галерею, тогда миниатюра для этого изображения не обновляется. Тем не менее, я выбираю изображение, это действительно отредактированная версия.

У кого-нибудь есть решение по этому поводу? У меня есть поиск, но я получаю ответ об обновлении галереи с помощью sendBroadcast(), который, похоже, не обновляет изображения предварительного просмотра.

Редактировать

Я не хочу удалять существующий файл, поскольку предположим, что пользователь хочет сохранить файл с другим именем, отличным от того, что этот файл не затронул

Ответы [ 2 ]

0 голосов
/ 28 мая 2012

Я нашел решение этой проблемы, прежде чем запрашивать новый эскиз, вам нужно удалить старый.Используйте 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)});

    }

}

Вы можете получить photoId из его URI, чтобы получить URI из имени файла, просто создайте File и проанализируйте URI из него

Uri uri = Uri.fromFile(file);
0 голосов
/ 02 января 2012

Два предложения.

  • Попробуйте getThumbnail .От javadoc я ожидал бы, что он обновит обновленную миниатюру.
  • Если это не обновляет миниатюру, попробуйте удалить миниатюру.
...