应用了不同变换的毕加索缓存

pau*_*vap 4 android caching picasso

我正在使用毕加索从亚马逊s3下载一些图像并在android应用程序的不同区域应用转换.使用debbuging我注意到,对于每个具有不同变换或imageview大小的调用,picasso将再次下载它并将变换后的图像缓存在内存中.是否有正确的方法让毕加索将原始图像存储在缓存中,然后应用转换而无需再次下载它?网络带宽是我的用户案例的问题.

Jak*_*ton 5

原始图像将存储在磁盘缓存中.确保您的服务器正在发送正确的标头,以便在您需要的任何时间段内进行缓存.当第二个请求发出并且映像已经在磁盘缓存中时,它将立即返回.

默认情况下,磁盘缓存仅适用于Android 4.0及更高版本,因为它是在引入内置HTTP客户端时使用的.对于所有API级别的缓存,请在您的应用中包含[OkHttp] [1].毕加索会自动看到OkHttp并使用它.这不仅可以为您提供任何地方的缓存,还可以提供全面的更好的HTTP客户端.

  • 它已经缓存了,问题是URI的查询部分在每次请求时都在变化,这就是为什么磁盘缓存总是丢失的原因,必须实现自定义缓存删除uri的查询#frag片部分.谢谢杰克.点击此处查看:https://github.com/square/picasso/issues/267#issuecomment-26937784 (2认同)