Flutter 图片终极全家桶
在Flutter中,图片通常由Image小部件来展示,但是在不同的场景下,可能需要使用不同的图片widget,例如:
- 网络图片:使用
Image.network
。 - 本地资源图片:使用
Image.asset
。 - 动态加载图片:使用
ImageProvider
。 - 缓存图片:使用
CachedNetworkImage
(来自cached_network_image
包)。 - 自适应图片:使用
Image.asset
的width
和height
参数。
以下是一些示例代码:
// 网络图片
Image.network('https://example.com/image.png');
// 本地资源图片
Image.asset('assets/images/icon.png');
// 使用ImageProvider加载本地资源图片
AssetImage('assets/images/icon.png').resolve(ImageConfiguration()).then((imageProvider) {
return Image(image: imageProvider);
});
// 使用cached_network_image包加载网络图片并缓存
CachedNetworkImage(placeholder: (context, url) => CircularProgressIndicator(), imageUrl: 'https://example.com/image.png');
// 自适应图片
Image.asset('assets/images/icon.png', width: 100.0, height: 100.0);
请注意,在使用网络图片时,需要在pubspec.yaml
中添加网络权限:
flutter:
uses-material-design: true
assets:
- assets/images/
并且,使用cached_network_image
需要在项目中添加依赖:
dependencies:
cached_network_image: ^3.2.0
这些代码片段展示了如何在Flutter中使用不同的图片widget,以及如何处理网络图片和本地图片。
评论已关闭