毕加索图书馆会自动缓存图像吗?



我有3个主要问题,我找不到可靠的新答案。

1(毕加索会自动缓存图像吗?因为我见过有人使用 okhttp3 缓存图像以供离线使用。如果是,他们为什么要使用另一个库来缓存?

2(如果您的手机存储空间不足,毕加索缓存系统是否仍会缓存它并使应用程序崩溃?

3(在我的应用程序中,我正在使用Picasso.get().fit()。如果毕加索图书馆正在缓存,它是缓存整个图像还是仅缓存适合版本(小于整个图像(

最后,这是我的代码:

Picasso.get().load(downloadURL).fetch()
Picasso.get().setIndicatorsEnabled(true)

Picasso.get().load(downloadURL).fit().networkPolicy(NetworkPolicy.OFFLINE).into(viewHolder.itemView.vegetableImage,
object: Callback {
override fun onSuccess() {}
override fun onError(e: Exception?) {
Picasso.get().load(downloadURL).fit().into(viewHolder.itemView.vegetableImage)
}
})

网络策略制定在加载图像时有什么区别还是相同?fetch()它有用吗?我在 BindViewHolder 上的回收器视图适配器中使用它,因为我从 Firebase 数据库获取数据。

提前谢谢。

1(毕加索会自动缓存图像吗?

是的,确实如此。这是库的描述:

适用于安卓的强大图像下载和缓存库。

因此,您将拥有自己的缓存。

因为我见过有人使用 okhttp3 缓存图像以供离线使用。

还有许多其他库可用于此。

如果是,他们为什么要使用另一个库来缓存?

您可以使用毕加索或任何其他图书馆,但由您选择您觉得更舒适的图书馆。

2(如果您的手机存储空间不足,毕加索缓存系统是否仍会缓存它并使应用程序崩溃?

是的,会的。此库未检查您的磁盘空间。此操作应由用户完成。最终,当你的设备上没有更多空间并且你的应用将尝试将新映像写入磁盘时,它将引发异常。

3(在我的应用程序中,我正在使用Picasso.get((.fit((。如果毕加索图书馆正在缓存,它是缓存整个图像还是仅缓存适合的版本(小于整个图像(。

它将缓存您获得的图像,但可以选择对其进行转换。您可以根据需要调整图像大小:

Picasso.get()
.load(url)
.resize(50, 50)
.centerCrop()
.into(imageView)

附言。对于Android,我们也使用Glide:

Glide 是一个快速高效的开源媒体管理和图像加载框架,适用于 Android,它将媒体解码、内存和磁盘缓存以及资源池包装到一个简单易用的界面中。

最新更新