1

我的应用程序正在获取一个电影对象列表,其中包括一个电影海报 url,它正在显示这些海报和标题,然后当用户点击该电影时,它会转到一个电影详细信息活动,该活动也有海报和标题,以及更多信息。很简单。虽然我注意到,当我点击电影时,仍有一两秒钟没有加载海报,我想消除它,这似乎相对容易缓存。我正在使用 Picasso,我最近切换到 Coil 进行图像加载,他们都声称在后台处理缓存,但我假设由于加载时间的原因,这不会发生。在这两个活动中,我只是加载它:

posterImageView.load(it.posterURL ?: {url of "no poster found" image})

为了从缓存中加载这些而不是每次都从 url 加载图像,我需要做些什么额外的事情吗?

4

1 回答 1

0

根据此处的官方文档,您应该使用此处定义的LruCache 。但也有一种方法:

要存储大量图像,您应该首先创建一个只能由您的应用程序访问的临时文件夹(通常在 data/data/package_name/ 中),然后将您第一次下载的每个图像保存在该文件夹中,并给出密钥为图像的名称。之后,每当您需要显示图像时,只需使用“if”条件来检查该特定键的图像(您保存图像的名称)是否已存储。如果是则显示图像。(请记住在下次打开应用程序时清除文件夹图像)。

于 2021-03-09T06:09:18.890 回答