我有以下代码,它不会按预期加载图像。它在网上运行良好,但我也需要离线加载图像。我也允许写外部存储。任何想法都会非常有用。
Picasso.with(getContext())
.load(userInfo.getUserPictureUri())
.networkPolicy(NetworkPolicy.OFFLINE)
.resize(80, 80)
.error(R.drawable.profile_picture)
.centerCrop()
.into(imageView_ProfilePictureSide, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
// Try again if cache failed
Picasso.with(getActivity())
.load(userInfo.getUserPictureUri())
.error(R.drawable.profile_picture)
.into(imageView_ProfilePictureSide);
}
});
答案 0 :(得分:1)
将OkHttp添加到app模块的gradle构建文件中:
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.4.0'
Picasso使用HTTP
客户端请求进行Disk Cache
操作因此,您可以使用Cache-Control
创建自己的http请求标头具有属性max-age
并创建自己的静态毕加索实例默认毕加索使用Okhttp
。
Okhttp
和picasso
库均由平方团队提供。
参考文献:How do I use disk caching in Picasso?和Github issue about disk cache,@ jake-wharton已回答了两个问题 - > Question1和Question2