本节目标
- image 构造函数的 5 种方式
- 加载图片 Asset、NetworkImage
- 占位图 FadeInImage
- 头像 CircleAvatar
- 圆角 ClipRRect
- 图片 fit 方式
1. Image
图片显示组件
支持图像格式 JPEG,PNG,GIF,动画 GIF,WebP,动画 WebP,BMP 和 WBMP
- 五种构造方式
构造 | 说明 |
---|---|
Image() | ImageProvider 适配图片 |
Image.asset | 加载资源图片 |
Image.file | 加载本地图片 |
Image.network | 加载网络图片 |
Image.memory | 加载 Uint8List 资源图片 |
- 构造参数
1 | //通过ImageProvider来加载图片 |
29 种混合模式
1 | enum BlendMode { |
- 主要的混合模式效果如下
- 缩放
enum BoxFit 枚举对象
名称 | 说明 |
---|---|
fill | 图片按照指定的大小在 Image 中显示,拉伸显示图片,不保持原比例,填满 Image。 |
contain | 以原图正常显示为目的,如果原图大小大于 Image 的 size,就按照比例缩小原图的宽高,居中显示在 Image 中。如果原图 size 小于 Image 的 size,则按比例拉升原图的宽和高,填充 Image 一边并居中显示。 |
cover | 以原图填满 Image 为目的,如果原图 size 大于 Image 的 size,按比例缩小,居中显示在 Image 上。如果原图 size 小于 Image 的 size,则按比例拉升原图的宽和高,填充 Image 居中显示。 |
fitWidth | 以原图正常显示为目的,如果原图宽大小大于(小于)Image 的宽,就缩小(放大)原图的宽与 Image 一致,居中显示在 Image 中。 |
fitHeight | 以原图正常显示为目的,如果原图高大小大于(小于)Image 的高,就缩小(放大)原图的高与 Image 一致,居中显示在 Image 中。 |
none | 保持原图的大小,显示在 Image 的中心。当原图的 size 大于 Image 的 size 时,多出来的部分被截掉。 |
scaleDown | 以原图正常显示为目的,如果原图大小大于 Image 的 size,就按照比例缩小原图的宽高,居中显示在 Image 中。如果原图 size 小于 Image 的 size,则不做处理居中显示图片。 |
示例
- pubspec.yaml
1 | assets: |
- main.dart
1 | // assets |
代码
https://github.com/ducafecat/flutter-learn/tree/master/image_widget
参考
© 猫哥