2012-01-02 1 views
1

можно дублироватькак обновить миниатюры предварительного просмотр андроида галереи после того, как изображение отредактировано

Refreshing the thumbnail using MediaScanner

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

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

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

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

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

+0

Возможный дубликат Http: // StackOverflow. com/questions/7805527/refreshing-the-thumbnail-using-mediascanner – rds

+0

Я отредактировал мой вопрос – Pratik

+0

@Pratik Извините, у вас есть ответ? –

ответ

0

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

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

Я открываю андроидную встроенную галерею, используя Intent, а не программно создаю галерею – Pratik

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)}); 

    } 

} 

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

Uri uri = Uri.fromFile(file); 

 Смежные вопросы

  • Нет связанных вопросов^_^