【问题标题】:Image Caching With Anroid Libraries使用 Android 库进行图像缓存
【发布时间】:2020-05-15 21:41:24
【问题描述】:

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

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

我需要做些什么才能从缓存中加载这些图像,而不是每次都从 url 加载图像吗?

【问题讨论】:

  • 1) 您在这两种情况下都使用相同的 URL 吗? 2)两个图像布局具有相同的大小? 3)如果你打开飞行模式会发生什么?

标签: android kotlin coil


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2010-12-29
    相关资源
    最近更新 更多