Я работаю над приложением, в котором пользователь может выбирать файлы: новое изображение с камеры, изображение из галереи или обычный старый файл. Затем отображается значок и имя для выбранного элемента. У меня это работает за одним исключением. Приложение Gallery объединяет картинки Picasaweb. Если пользователь выбирает изображение из альбома Picasa, я не смогу получить для него миниатюру.
Я использую метод MediaStore.Images.Thumbnails.getThumbnail (), и он отлично работает с другими изображениями в галерее, но для файлов picasaweb я получаю, независимо от того, какой «вид» эскиза я пытаюсь сделать чтобы получить (хотя MICRO это то, что я после):
ОШИБКА / MiniThumbFile (2051): получено исключение при чтении магии, id =
5634890756050069570, диск заполнен или монтируется только для чтения? учебный класс
java.lang.IllegalArgumentException
Я заметил, что URI, заданные для выбранных файлов, отличаются. Локальные файлы изображений выглядят так:
Содержание: // СМИ / внешние / изображения / СМИ / 6912
и URL-адреса picasaweb выглядят так:
содержание: //com.android.gallery3d.provider/picasa/item/5634890756050069570
Я попытался использовать запрос для получения необработанного THUMB_DATA, используя Thumbnails.queryMiniThumbnails (), с Thumbnails.THUMB_DATA в массиве проекций, но я получил ошибку «нет такого столбца».
Есть ли другой способ получения миниатюр, который бы работал лучше? И будет ли у меня такая же проблема, когда я попытаюсь получить доступ к полным данным изображения?