SimpleCursorAdaptor ListView с использованием TextView и ImageView с более чем 400 строками. Проблемы с памятью - PullRequest
0 голосов
/ 25 мая 2011

Это лучший способ или есть другие?

Я расширяю SimpleCursorAdapter и переопределяю getView (int position, View convertView, ViewGroup parent)

Я извлекаю свой Курсор, раздуваю мои ImageView и TextView, извлекаю данные от курсора и заполните TextView и ImageView в ImageView я храню свои изображения в базе данных как Blob.

Когда я получаю свой Blob, я вытаскиваю его как байт [] и преобразую в

Растровое изображение, как показано ниже:

Bitmap bmp = BitmapFactory.decodeByteArray (img, 0, img.length);

Затем я установил свое растровое изображение на свой ImageView как:

iv.setImageBitmap (BMP);

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

Может кто-нибудь сказать мне, что лучший способ для выполнения этой задачи будет быть? Есть ли способ утилизации растровых изображений, которые не отображаются и при приближении к ним тянуть их и снова показывать?

Я искал несколько месяцев и пробовал разные техники, но я в потеря найти тот, который позволит мне выполнить эту задачу.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

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

0 голосов
/ 25 мая 2011

Вы смотрели это видео: http://www.youtube.com/watch?v=N6YdwzAvwOA

и читали эту ветку: как очистить кэшированные изображения в Android?

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

...