Android Volley с кэшированием изображений
В настоящее время я работаю с приложением, в котором одно действие содержит представление списка с изображением и текстом для каждой строки. Я загружаю изображения, используя залп. При щелчке элемента представления списка приложение переключится на другое действие с подробным представлением, в котором будет показана большая версия изображения, по которому щелкнули. В оба раза я использую NetworkImageView.
Изображения загружаются в виде списка с кэшированием. Но проблема появилась в подробном представлении. Изображения отображаются из ранее загруженного кэша с низким разрешением. Я хочу загрузить изображение с хорошим разрешением при детальном просмотре, который будет кэшировать изображение отдельно для большого просмотра.
Для обоих экранов URL изображения одинаковы. Как это сделать? Заранее спасибо.
1 ответ
Первое, что немного очевидно - убедитесь, что ваши изображения находятся в требуемом качестве.
Если это так, вы, вероятно, захотите загрузить изображение "вручную", используя ImageLoader
класс, как NetworkImageView
по умолчанию оптимизирует размер Bitmap
он создает размер самого представления. Итак, что происходит, вы сначала загружаете миниатюрный вид, который является маленьким, и сохраненный Bitmap
создается в этом размере вместо исходного размера изображения. Затем, когда увеличенное представление запрашивает то же изображение, возвращается кэшированная версия, которая является маленькой Bitmap
и вид масштабирует его, создавая видимость с низким разрешением.
Попробуйте использовать ImageLoader.get()
с шириной и высотой, соответствующей большему виду на подробном экране.
Другой вариант - загрузить 2 версии одного и того же изображения.