如何在android中实现具有缓存支持的异步图像下载?

时间:2015-08-11 12:03:51

标签: android

我想从服务器下载所有图像并将其存储在缓存中。在大多数情况下,下载的图像直接绑定到imageView(例如Picasso)。我想在android中使用相同的功能,由SDWebImage(“https://github.com/rs/SDWebImage”)提供。

1 个答案:

答案 0 :(得分:0)

Shutterbug是一个很好的图书馆(https://github.com/applidium/Shutterbug)。我自己在一些应用程序中使用过它,效果很好。你可以使用Shutterbug FetchableImageView(它扩展了ImageView,你给它一个URL而不是位图或资源ID,它会在下载完成时显示图像),或者你可以使用ShutterbugManager来控制下载后会发生什么和缓存。所有的缓存都是为你完成的,非常棒!)

GitHub页面的自述文件中有很好的说明如何使用它们,并且还有一个演示项目。

编辑:刚刚注意到你的评论。如果您不想绑定到ImageView,可以使用ShutterbugManager下载图像,然后对其执行任何操作。对下载方法的任何后续调用都将从缓存中获取图像,而不是再次进行HTTP调用。

public void downloadImage(Context context, String url) {
    ShutterbugManager.getSharedImageManager(context).download(url, new ShutterbugManager.ShutterbugManagerListener() {
        @Override
        public void onImageSuccess(ShutterbugManager manager, Bitmap bitmap, String arg2) {
            // Do what you like with the Bitmap here.
        }

        @Override
        public void onImageFailure(ShutterbugManager arg0, String arg1) {
            // Failure :(
        }
    });
}