我正在使用 Picasso 库为我的应用加载图片。但是我不知道如何在 Picasso 库中实现自己的磁盘(SD 卡)缓存。
我正在使用 Picasso 库为我的应用加载图片。但是我不知道如何在 Picasso 库中实现自己的磁盘(SD 卡)缓存。
Picasso使用HTTP客户端进行磁盘缓存,如果已经配置了一个客户端,它将使用该客户端而不是安装自己的客户端。
对于内置的UrlConnection,请查看此处安装缓存的文档:https://developer.android.com/reference/android/net/http/HttpResponseCache.html
如果您正在使用OkHttp,则只需调用setCache即可:http://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/OkHttpClient.html#setCache-com.squareup.okhttp.Cache-
@Dax,为了在OkHttp中使用自定义缓存目录保存文件,我会编写类似于以下代码:
OkHttpClient okHttpClient = new OkHttpClient();
File customCacheDirectory = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/MyCache");
okHttpClient.setCache(new Cache(customCacheDirectory, Integer.MAX_VALUE));
OkHttpDownloader okHttpDownloader = new OkHttpDownloader(okHttpClient);
Picasso picasso = new Picasso.Builder(mainActivity).downloader(okHttpDownloader).build();
picasso.load(imageURL).into(viewHolder.image);