Я пишу приложение для Android. У меня есть ArrayAdapter, который я использую для отображения списка элементов, где часть каждого элемента представляет собой изображение. Я загружаю изображения асинхронно в методе getView () адаптеров, и я использую кеш, чтобы сделать его максимально эффективным и остановить слишком много повторных загрузок. Проблема, с которой я сталкиваюсь, заключается в том, что метод getView () для каждого элемента может вызываться android столько раз, сколько необходимо. Он часто вызывается быстрее, чем изображение на самом деле может быть загружено, и поэтому одно и то же изображение может много раз ставиться в очередь для загрузки, прежде чем оно попадет в кэш. Есть ли лучший способ предотвратить повторное добавление изображений в очередь для загрузки? Это просто большая трата мобильных данных.

1
Richard Mannion 24 Апр 2017 в 21:17

2 ответа

Лучший ответ

Согласно общепринятым рекомендациям Google по загрузке и отображению изображений в списке или в окне повторного просмотра, следует использовать библиотеку Glide.

https://github.com/bumptech/glide

API выглядит следующим образом

Glide.with(context) .load(url) .centerCrop() .placeholder(R.drawable.loading_spinner) .crossFade() .into(myImageView);

0
Shmuel 24 Апр 2017 в 22:12

Если вы хотите использовать стороннюю библиотеку для загрузки изображений, вы можете использовать Picasso
Его actullay довольно аккуратный и простой в использовании. Это делает кеширование для вашего приложения.
Вы можете обратиться к этому учебнику.
Счастливого обучения :)

1
Rohit Singh 24 Апр 2017 в 18:24
43595099