Есть ли способ получить прогресс загрузок в очереди в Picasso?
Я занимаюсь разработкой приложения, которое должно предварительно загружать все изображения, используемые в наборе данных, чтобы приложение могло функционировать полностью в автономном режиме.
Он должен загружать около 600 изображений каждые 500 КБ (всего ~300 МБ).
Для этого я бы хотел перебрать все URL и выполнить метод Picasso fetch(). Это принесет все изображения, и это здорово.
Единственное, чего мне не хватает - это посмотреть, как продвигается процесс загрузки изображений. Есть ли способ увидеть ход загрузки очереди Пикассо? Таким образом, я могу уведомить пользователя о завершении загрузки и сообщить, каков текущий статус.
Что я нашел до сих пор:
- Я могу использовать цель, чтобы загрузить изображение в. Только это также будет декодировать в растровое изображение, которое еще не требуется и требует слишком много ресурсов.
- Я могу как-то прочитать папку кеша, чтобы проверить прогресс. Но я думаю, что это не чистый способ...
1 ответ
Прежде всего, вы не должны предварительно загружать все изображения. Если вы используете Picasso или Universal Image Loader, то оба кешируют ваши изображения. Таким образом, вы уверены (или почти) в OutOfMemoryException.
Но если вы действительно хотите это сделать, проверьте загрузчик изображений Universal Load Loader (String uri, слушатель ImageLoadingListener)
https://github.com/nostra13/Android-Universal-Image-Loader
imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Do whatever you want with Bitmap
}
});