отображать огромные изображения в Android

Я собираюсь отображать очень большие изображения в Android.

Мое первое решение - предоставить их в формате pdf - не удалось, потому что не на каждом КПК была предустановлена ​​программа просмотра pdf, и я не хочу требовать от пользователей ее установки.

Итак, у меня есть png (ширина = 3998 пикселей, высота = 2827 пикселей) , который я хочу отобразить. Я загрузил это изображение, чтобы проверить, как оно будет отображаться в галерее. Это было довольно болезненно. Кажется, что галерея визуализирует это изображение только один раз, и если я увеличу масштаб, я не смогу прочитать текст вообще.

Итак, я написал testActivity, в котором ImageView просто вложен в LinearLayout. Я помещаю изображение в чертеж и устанавливаю его как источник изображения ImageView. К сожалению, приложение немедленно вылетает из-за "

 ERROR/AndroidRuntime(8906): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget"  

Я не ожидал, что ОДИН образ может оказаться слишком большим для памяти ВМ . Я немного поигрался, установил ImageViews ] размером 3998 и 2827 пикселей , поместите изображение на sdCard и прочтите его вручную с помощью fileInputStream .
К моему большому удивлению, теперь отображается мое изображение, но если я поверну свой Nexus S по горизонтали , я получаю то же OutOfMemoryError , что и раньше.

Может кто-нибудь указать мне основное различие между получением растровое изображение через FileInputStream или установить его как источник ImageView .

Также я не могу удобно прокручивать с двумя родительскими scrollViews

Я ищу простое решение для отображения ОДНОГО большого изображения за раз с возможностью прокрутки по горизонтали и вертикали с возможностью увеличения и уменьшения.

вот образец изображения, которое я хочу отобразить enter image description here

29
задан Guru 18 April 2013 в 05:20
поделиться