如果我们在flutter中使用ImagePicker库,我们是否需要显式实现ImageCache?

时间:2018-01-17 07:01:54

标签: dart flutter

我实际上在使用ImagePicker库时尝试实现ImageCache概念,但在实现之前我只是想知道ImageCache是​​否由flutter内部处理,因为我在我的应用程序中看到了日志,当我看到ImageCache.putIfAbsent时使用NetworkImage。

请有人确认是否隐式执行此操作,还是我们需要明确处理此问题。

非常感谢, 鳅

3 个答案:

答案 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,它在内部使用共享首选项而不是重新实现图像缓存,我希望这可以帮助那些正在寻找这种功能的人。

的问候, 鳅