android – 为什么Picasso没有在缓存中保存图像以供离线使用?

android – 为什么Picasso没有在缓存中保存图像以供离线使用?,第1张

概述我有以下代码,它不会按预期加载图像.它在网上运行良好,但我也需要离线加载图像.我也允许写外部存储.任何想法都会非常有用. Picasso.with(getContext()) .load(userInfo.getUserPictureUri()) .networkPolicy(NetworkPolicy.OFFLINE) .resize(80, 80) .error 我有以下代码,它不会按预期加载图像.它在网上运行良好,但我也需要离线加载图像.我也允许写外部存储.任何想法都会非常有用.

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);        }    });
解决方法 将Okhttp添加到app模块的gradle构建文件中:

compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.squareup.okhttp:okhttp:2.4.0'

Picasso使用http客户端请求进行磁盘缓存 *** 作因此您可以使自己的http请求标头具有属性Cache-Control with max-age并使用Okhttp创建自己的静态毕加索实例而不是默认的Picasso.

Okhttp和毕加索图书馆都由平组团队提供.

参考文献:@L_404_0@和Github issue about disk cache,@ jake-wharton回答了两个问题 – > Question1和Question2

总结

以上是内存溢出为你收集整理的android – 为什么Picasso没有在缓存中保存图像以供离线使用?全部内容,希望文章能够帮你解决android – 为什么Picasso没有在缓存中保存图像以供离线使用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存