如何从网络下载图片并在 flutter 中离线用作资产图片

How to download image from network and use as an asset image offline in flutter

我正在使用 sqlflite flutter package 来管理我的应用程序的小型数据库,有一个 table 我有一些来自互联网的一些图片的 url,但我需要保存它们并使用文件而不是 url 稍后显示此图像。我的意思是我想做这样的事情:

bool internet
internet ? Image.network('the_url') : Image.assets("path to image in my assets folder")

那么,有什么方法可以从 url 中获取图像并保存以供日后访问吗?

您可以使用NetworkAssetBundle下载图像并转换为Unint8List

final ByteData imageData = await NetworkAssetBundle(Uri.parse("YOUR_URL")).load("");
final Uint8List bytes = imageData.buffer.asUint8List();

然后就可以通过Image.memory()插件加载了

Image.memory(bytes);

您可以将该数据存储在 sqflite 中并在需要时检索

你试过了吗https://pub.dev/packages/cached_network_image

看来这个包可以满足您的要求。