23

我正在使用 picasso 库为我的应用加载图像。但我不怎么用毕加索库实现我自己的磁盘(sdcard)缓存。

4

2 回答 2

36

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-

于 2013-09-23T16:44:35.190 回答
5

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

希望这可以帮助。

于 2015-10-22T08:01:29.220 回答