如何使用Picasso库下载和缓存位图

And*_*Dev 6 android image picasso

我使用以下方法

Bitmap bitmap = Picasso.with(ListofCardsActivity.this)
                            .load(overLayUrl).get();
Run Code Online (Sandbox Code Playgroud)

下载并从网址获取图像.

这种方法是否每次都从网址下载图像,即使它已经下载了?

我想要的是,一旦下载了图像,那么从下一次开始,我应该从缓存中获取图像,无需下载.

如果我们有像上述要求的方法.请告诉我

Com*_*are 2

此方法是否每次都从 url 下载图像,即使它已经下载了?

如果它被缓存则不会。

Picasso您返回的实例with()已预先配置为具有内存缓存和磁盘缓存。

根据您下载的量,您可能会耗尽缓存空间。我希望毕加索使用诸如ETag和 之类的东西If-Modified-Since来重新下载图像(如果服务器上的图像已更改),尽管我还没有检查他们的代码以查看它们是否这样做,因为这种行为没有记录。

  • Picasso 不执行任何显式磁盘缓存。这 100% 由 HTTP 客户端处理。正如您所说,我们确实在客户端中配置了磁盘缓存(如果您还没有)。正常的 HTTP 缓存语义适用,并且诸如“ETag”、条件“GET”等也适用,正如您在上面的评论中所说的那样。 (7认同)