2015-04-04 2 views
-1

У меня есть огромное изображение для рендеринга (1024x25373p), нарезанное 99 изображениями 1024x256p. Я попытался использовать ListView, но безуспешно: он сбой при прокрутке, без какой-либо ошибки (кроме одной строки, говорящей, что процесс был остановлен). Итак, мой вопрос: как мне сделать это огромное изображение?Как использовать listview для визуализации огромных изображений?

Пожалуйста, обратите внимание, что я пытался использовать TileView по moagrius, без успеха (я не могу заставить его работать с навигацией ящиком)

+0

Сэр, почтовый индекс и LogCat –

+0

показать свой предмет разметкой – Xcihnegn

+1

Вы должны сделать много читать о том, как масштабировать изображения. Для каждого изображения требуется около 1 МБ ОЗУ. Поэтому 99 требует около 99 МБ! Даже с большой кучей вы не сможете загрузить их. – Simon

ответ

0

Как предложение,

  1. Если это ListView , вам могут не потребоваться изображения большего размера «1024x256p». Фактический размер вашего изображенияПросмотр может быть намного меньше. Таким образом, его потеря кучи, если вы попытаетесь загрузить эти изображения напрямую без какой-либо обработки.

  2. Определенно вам нужно немного уменьшить изображение, исходя из фактического размера, который вам нужен. Хороший exapmple и код был опубликован на official doc

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

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

  5. Также вы можете определить включение кучи lager в своем манифесте, хотя это не рекомендуется, но это нужно делать в приложениях с высокой потребляемой памятью.

    андроид: largeHeap = «истинный»

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