我实际上在使用ImagePicker库时尝试实现ImageCache概念,但在实现之前我只是想知道ImageCache是否由flutter内部处理,因为我在我的应用程序中看到了日志,当我看到ImageCache.putIfAbsent时使用NetworkImage。
请有人确认是否隐式执行此操作,还是我们需要明确处理此问题。
非常感谢, 鳅
答案 0 :(得分:3)
是的,flutter在内部管理已由ImageProvider
及其子类(如AssetBundleImageProvider, FileImage, MemoryImage & NetworkImage
)实施的图像缓存。
Flutter缓存高达1000个图像(如文档中所述)。
ImagePicker
是一个插件,用于启动本机应用程序以从中选择图像。因此,所有图像都会显示何时由Gallery
应用程序处理拣选或什么时候处理。
因此,如果您使用ImagePicker
插件挑选图片而Image.file
在UI上展示图片并尝试缓存它们,则无需实施ImageCache
,因为{{1使用已经实现了图像缓存的Image.file
。
要了解有关FileImage
的更多信息,请查看文档here。
希望有所帮助!
答案 1 :(得分:0)
我们使用了默认的图像缓存。您可以实现自己的行为来获取自定义行为,但您可以依赖默认行为。
答案 2 :(得分:0)
我实际上使用了这个包cached_network_image 0.2.1
,它在内部使用共享首选项而不是重新实现图像缓存,我希望这可以帮助那些正在寻找这种功能的人。
的问候, 鳅