如何在颤动中将资产图像存储在缓存中

Posted

技术标签:

【中文标题】如何在颤动中将资产图像存储在缓存中【英文标题】:How to store asset Images in cache in flutter 【发布时间】:2021-04-16 15:25:02 【问题描述】:

我有一些图像要在我的应用程序中显示,这些图像很大,所以我想将它们存储在缓存中。点击一个按钮,我将所有图像更改为其他图像集,当所有图像一次又一次地加载时,它看起来很糟糕。我尝试了很多解决方案,但直到现在都没有一个适合我。

我尝试使用以下方法,但在加载图像时没有发现任何差异。

precacheImage(AssetImage("path"), context);

有没有办法喜欢保存图像,所以当我更改图像时它们不会再次加载(任何包及其实现甚至 dart 代码都可以)。谢谢

【问题讨论】:

【参考方案1】:

您可以使用 cached_network_image 包。这样,您就可以显示图像。展示一次后,它们被缓存起来,便于重复使用。

【讨论】:

是的,但我说的是资产中的图像它可以缓存资产图像吗?如果可以那么怎么做呢?对不起,我是新手 为此,您可以使用包asset_cache。另一方面,没有任何第三方包的这种行为的默认实现看起来像***.com/a/54766740/12791556 嗨,我使用了很多方法,其中一种方法是使用asset_cache 包,但仍然无法获得所需的结果,而且您​​提供的链接已经包含在我的问题中,说明我的一个方法使用precacheImage。感谢您帮助我,但您能提供一个虚拟代码以供参考吗? (因为可能我执行错了) 链接中提供了一个虚拟代码。如果你的看起来一样,你做对了。如果它仍然需要一些时间来加载,请记住,如果你在模拟器上测试它,它们中的大多数都很慢,所以它在真实设备上看起来可能会有所不同。据说,如果您使用的是真实设备,那么您将无能为力。

以上是关于如何在颤动中将资产图像存储在缓存中的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中将 ImageCache 保存到磁盘?

如何在颤动中将 List<File> 转换为 List<Asset>

如何在颤动中将 List<Asset> 转换为 List<File>

如何在颤动中将 Blob 转换为图像

如何在颤动中将图像复制到剪贴板

如何在angularjs中将图像存储到浏览器缓存中