![](/img/trans.png)
[英]How do i use asset image in flutter for setting wallpaper in android
[英]How to download image from network and use as an asset image offline in flutter
我正在使用sqlflite flutter package 为我的应用程序管理一个小型数据库,有一个表,其中我有一些来自互联网的图像的 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 中并在需要时检索
您可以使用 path_provider package 从互联网下载并保存在本地。 然后,如果可用,您可以从本地资产加载。 否则它也可以从互联网上下载。
Future<String?> loadPath() async {
var dir = await getApplicationDocumentsDirectory();
String dirName = widget.url!.substring(87);
file = File("${dir.path}/$dirName");
if (file.existsSync() == true && _isDownloadingPDF == false) {
// debugPrint('file.path returned');
return file.path;
} else {
return null;
}
}
您是否尝试过https://pub.dev/packages/cached_network_image ?
看起来这个包将满足您的要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.