有没有办法让毕加索的排队下载进展顺利?

时间:2014-10-17 12:57:36

标签: android caching queue picasso imagedownload

我正在开发一个应用程序,它应该能够预先下载数据集中使用的所有图像,以便应用程序可以完全脱机运行。

应该下载每500KB的 600张图像(总共约300 MB)。

为此,我想循环遍历所有网址并执行 Picasso fetch()方法。这将获取所有图像,这很棒。

我唯一缺少的是查看所有图片下载的进度的方法。有没有办法看到毕加索下载队列的进展?这样我就可以在下载完成时通知用户,并告知当前状态。

到目前为止我发现了什么:

  • 我可以使用Target将图像加载到。只有这个也会解码为Bitmap,这是一个尚未需要的资源。
  • 我可以以某种方式读取缓存文件夹以检查进度。但我认为这不是一个干净的方式......

1 个答案:

答案 0 :(得分:0)

首先,您不应该预加载所有图像。 如果您使用的是Picasso或Universal Image Loader,则它们都会缓存您的图像。通过这种方式,您可以确定(或几乎)关于OutOfMemoryException。

但是如果你真的想这样做,请检查Universal Image Loader loadImage(String uri,ImageLoadingListener listener)

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
     }
});