0

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

它应该下载大约600 张图片,每个 500KB(总共约 300MB)。

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

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

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

  • 我可以使用 Target 将图像加载到其中。只有这也将解码为位图,这还不是必需的并且占用太多资源。
  • 我可以以某种方式读取缓存文件夹以检查进度。但我认为这不是一个干净的方式......
4

1 回答 1

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
     }
});
于 2014-10-17T13:51:31.790 回答