gmanrainy
@gmanrainy
Увлекаюсь программированием , java , android , c#

Как выгрузить картинку из памяти в ImageView на Android 5?

Здравсвтуйте.
Столкнулся с такой проблемой, что не получается выгрузить из памяти изображения загруженные в ImageView на Android 5.
До этого тестировал на Android 7 и в таком виде в каком приложение есть сейчас память расходуется незначительно, но на Android 5 утекает просто сквозь пальца.
Есть метод, через который я выгружаю картинку из памяти, в нем прописывал следующее:
cardview_tumbnile_imageview.setImageResource(0);
cardview_tumbnile_imageview.setImageBitmap(null);
cardview_tumbnile_imageview.setImageDrawable(null);
System.gc();

Все это я написал для Android 5 и все равно результата никакого.
Для Android 7 достаточно просто написать
setImageDrawable(null)

Делал Dump Memory Heap и видел там кучу byte[] после загрузки изображений.
  • Вопрос задан
  • 563 просмотра
Пригласить эксперта
Ответы на вопрос 3
@aol-nnov
не делом занимаешься, как мне кажется.
Ответ написан
thelongrunsmoke
@thelongrunsmoke
Программист
Во-первых, gc запускается по мере исчерпания хипа. И если куча картинок не вызывает OutOfMemory, то лучше оставить эту оптимизацию на потом.
Во-вторых, если картинки у вас не подготовлены под разные разрешения, то имеет смысл грузить их через Bitmap.createScaledBitmap(). Это снизит потребление памяти.
Ответ написан
1110001111
@1110001111
Делал Dump Memory Heap и видел там кучу byte[] после загрузки изображений

А какой объект удерживает картинки?

Почему бы не использовать специальную библиотеку для загрузки изображений? Glide или Fresco, например. Там есть in-memory и on-disk кеширование, всю работу с памятью они берут на себя. Как я не издевался никаких OOM я не смог поймать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы