Android MediaStore Insert Image Создан дополнительный файл - PullRequest
3 голосов
/ 23 января 2011

Я вставляю изображение в кэш MediaStore, используя следующий фрагмент кода:

MediaStore.Images.Media.insertImage(getContentResolver(), selectedFile.getParent() + file.separator + selectedFile.getName(), selectedFile.getName(),null);

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

1 Ответ

6 голосов
/ 14 апреля 2011

Документация для MediaStore.Images.Media.insertImage() гласит:

Вставьте изображение и создайте для него миниатюру.

Что вам действительно нужно сделать, так это получить доступСервис медиа-сканера.Служба запускается по умолчанию во время запуска или после установки SD-карты.Вы можете заставить его работать, используя намерения, но в итоге вы заново сканируете всю SD-карту за одну.

Конечно, есть лучшее решение:

Если вы разрабатываете для APIуровень 8 или выше (Android 2.2), используйте статическую функцию scanFile из MediaScannerConnection, здесь документально здесь .

Для API 7 или ниже, это немного сложнее, но вы можетесоберите все вместе с оберткой, лучше всего объясненной в следующем посте: динамически добавляйте картинки в виджет галереи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...