1

我想从互联网上加载一张毕加索的图片,并且没有连接,从磁盘缓存。缓存写得很好(图片在缓存目录中)。但是在阅读时我得到了这个日志:

Sending progress READING_FROM_CACHE
Cache content not available or expired or disabled

我的项目中有改造和 okhttp 请求。这张图片加载了这个代码

// Obtain the cache directory
File cacheDir = getActivity().getCacheDir();

// Create a response cache using the cache directory and size restriction
HttpResponseCache responseCache = null;
try {
    responseCache = new HttpResponseCache(
        cacheDir,
        10 * 1024 * 1024);
} catch (IOException e) {
    e.printStackTrace();
}
// Prepare OkHttp
OkHttpClient httpClient = new OkHttpClient();
httpClient.setResponseCache(responseCache);
// Build Picasso with this custom Downloader
Picasso picasso = new Picasso.Builder(getActivity())
    .downloader(new OkHttpDownloader(httpClient))
    .build();

picasso.setDebugging(true);

picasso.with(getActivity())
    .load(profilePicUrl) // url picture
    .resize(180, 180)
    .centerCrop()
    .placeholder(R.drawable.ic_int_profile_no_photo)
    .into(mProfilePic); //ImageView

结果是没有连接,图片不会加载,但图片在 picasso 的缓存目录中(并且日志显示该消息)。


想法

我认为,如果我为毕加索使用自定义下载,我不必修改我的改造请求标头(RequestInterceptor -> 拦截)。我有很多 POST 和 GET 请求,我想保持原样。


我检查过的一些链接

如何使用毕加索库实现我自己的磁盘缓存 - Android?
https://github.com/square/picasso/issues/237
如何从毕加索的缓存中检索图像?


提前致谢。

4

0 回答 0