Flutter - 加载网络图片的几种方式
在Flutter中,加载网络图片主要有以下几种方式:
- 使用Image.network构造函数直接在Widget中加载。
Image.network('https://example.com/image.png')
- 使用FutureBuilder来处理异步加载的情况。
FutureBuilder(
future: NetworkImage('https://example.com/image.png'),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Image(image: snapshot.data);
} else if (snapshot.hasError) {
return Text('Error loading image');
}
return Text('Loading image...');
},
)
- 使用CachedNetworkImage插件,它可以缓存图片并显示进度条。
首先,在pubspec.yaml中添加依赖:
dependencies:
cached_network_image: ^3.2.0
然后,使用CachedNetworkImage:
CachedNetworkImage(
imageUrl: 'https://example.com/image.png',
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => Icon(Icons.error),
)
- 使用http包获取网络图片的bytes,然后使用MemoryImage显示图片。
http.get('https://example.com/image.png').then((response) {
Uint8List bytes = response.bodyBytes;
setState(() {
image = Image.memory(bytes);
});
});
以上就是Flutter中加载网络图片的几种方式,具体使用哪种取决于你的具体需求。
评论已关闭