SimpleCursorAdaptor ListView с использованием TextView и ImageView с более чем 400+ строками Проблемы с памятью

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

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

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

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

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

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

Затем я установил свой Bitmap в своем ImageView как:

iv.setImageBitmap (BMP);

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

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

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

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


person gcstang    schedule 24.05.2011    source источник


Ответы (2)



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

person gcstang    schedule 17.06.2011