我正在使用毕加索从亚马逊s3下载一些图像并在Android应用程序的不同区域应用转换。使用debbuging我注意到,对于每个具有不同变换或imageview大小的调用,picasso将再次下载它并将变换后的图像缓存在内存中。是否有正确的方法让毕加索将原始图像存储在缓存中,然后应用转换而无需再次下载它?网络带宽是我用户案例的一个问题。
答案 0 :(得分:5)
原始图像将存储在磁盘缓存中。确保您的服务器正在发送正确的标头,以便在您需要的任何时间段内进行缓存。当第二个请求发出并且映像已经在磁盘缓存中时,它将立即返回。
默认情况下,磁盘缓存仅适用于Android 4.0及更高版本,因为它是在引入内置HTTP客户端时使用的。对于所有API级别的缓存,请在您的应用中包含[OkHttp] [1]。毕加索会自动看到OkHttp并使用它。这不仅可以为您提供任何地方的缓存,还可以提供全方位的更好的HTTP客户端。