У меня проблема с использованием универсальной библиотеки загрузчика изображений. К сожалению, библиотека вызывает огромное использование памяти моего приложения.Огромное потребление памяти UniversalImageLoader
У меня есть Scrollview (есть много причин, почему я использую Scrollview вместо ListView, большинство из них имеет отношение к пользовательской вставке и выбор элемента анимации) выдерживания около 20 пользовательских просмотров. Каждый из этих пользовательских представлений состоит из некоторых TextViews, а также ImageView.
А теперь вот незадача:
Образы экран отображается в ImageViews загружаются из Интернета, и все они имеют около 100-150kb (размер 640 х 320) каждый. Если я загружаю изображения с помощью UniversalImageLoader, мое приложение вылетает с OutOfMemoryException, потому что оно использует около 80Mb памяти.
Если я не загружать изображения, а просто поставить в Hard-Coded изображения с размером 1200kb (размер 1920 х 1080) на настраиваемое представление, мое приложение только потребляет около 40Mb памяти.
Что я делаю неправильно с помощью UniversalImageLoader при загрузке в десять раз меньше изображений Заставляет мое приложение использовать вдвое больше памяти?
Я отключил все механизмы кеширования, но проблема все еще сохраняется.
Вот моя установка UniversalImageLoader:
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(c)
.build();
ImageLoader.getInstance().init(config);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.loading)
.showImageForEmptyUri(R.drawable.loading)
.showImageOnFail(R.drawable.loading)
.cacheInMemory(false)
.cacheOnDisc(false)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT) // default
.build();
И в коде, я называю это так:
ImageLoader im = ImageLoader.getInstance();
im.displayImage("myurl", myimageview, options);
Что я делаю неправильно? Почему UniversalImageLoader использует столько памяти?
Размер файла часто не совпадает с размером в памяти при обращении к изображениям. Я предполагаю, что ваши номера 100-150 КБ относятся к размеру файла (сжатый). – kabuko
Да, когда я загружаю файлы, например, через мой браузер на компьютере, они все между 100 и 150 КБ. Поэтому я не понимаю, почему изображения 100-150 КБ используют больше памяти, чем изображения 1200 КБ.Он должен иметь какое-то отношение к ImageLoader и к кешированию. –
Опять же, сжатие ... Размер пикселей здесь имеет значение. – kabuko