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

Ahm*_*gdi 2 android ios dart flutter sqflite

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

bool internet
internet ? Image.network('the_url') : Image.assets("path to image in my assets folder")
Run Code Online (Sandbox Code Playgroud)

那么,有什么方法可以从网址获取图像并保存以便以后访问吗?

小智 9

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

final ByteData imageData = await NetworkAssetBundle(Uri.parse("YOUR_URL")).load("");
final Uint8List bytes = imageData.buffer.asUint8List();
Run Code Online (Sandbox Code Playgroud)

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

Image.memory(bytes);
Run Code Online (Sandbox Code Playgroud)

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