Есть ли способ получить прогресс загрузок в очереди в 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
     }
});
Другие вопросы по тегам