在抖动中预加载图像资产

Rém*_*let 5 memory-leaks dart flutter

我正在建立一个扑朔迷离的游戏。我有大约130-150mo的图片。而且其中一些必须预先加载,否则用户体验会不流畅。

我自己发现了一种预加载图像的方法:

final asset = new ExactAssetImage(assetPath);
final stream = asset.resolve(createLocalImageConfiguration(context));
Run Code Online (Sandbox Code Playgroud)

虽然这样做有效,但存在一个巨大的缺点:内存成本大约是实际图像大小的6倍。

结果呢?我的应用程序仅通过加载图像就消耗了800 MO的内存,这太疯狂了(特别是考虑到它是一个相对简单的应用程序)。实际上,公羊的消耗是如此之大,以至于我丢失了很多框架。

简而言之:预加载图像的最理想方法是什么?有什么我想念的吗?

Bas*_*usa 0

如果您希望用户体验感觉流畅,那么您可以使用FadeInImage()并为其提供一个资源图像作为占位符,直到最终图像加载,如果您想从透明背景淡入图像,那么您可以使用透明_图像包。