Image是一个罕用的控件,它能够帮忙咱们显示图片,图片的资源能够是来自网络、本地或者是内存。在挪动端的开发中会大量应用Image来展现一些图文,理解和把握Image控件是十分有必要的。
AssetImage 和 Image.asset
AssetImage
是Flutter提供的一个能够从本地读取图片资源的类,咱们能够应用它来读取图片。同样Flutter还提供了Image.asset
这个构造方法间接来帮忙咱们读取图片资源并返回一个Image对象。其实Image.asset
是对AssetImage
一层更高级的封装。
留神:要读取本地图片咱们首先须要在pubspec.yaml
文件里配置本地图片资源的门路,咱们这里在assets
这个字段下新增了- images/image_demo.jpg
这个文件。后续将会有一篇专门的博客来解说资源的治理。
1. AssetImage
Image( image: AssetImage("images/image_demo.jpg"), width: 80, height: 80,)
2. Image.asset
Image.asset( "images/image_demo.jpg", width: 80, height: 80,)
两个办法都是传入一个本地文件门路就能够了。
NetworkImage 和 Image.network
NetworkImage
是一个能够从网络下载图片的类,它自身是异步的。Image.network
是对NetworkImage
的封装,它须要传入一个URL地址就能够返回一个Image对象。这两个的设计跟AssetImage
和Image.asset
的设计基本一致。
3. NetworkImage
Image( image: NetworkImage("http://www.fulade.me/img/avatar.jpg"), width: 80, height: 80,)
4. Image.network
Image.network( "http://www.fulade.me/img/avatar.jpg", width: 80, height: 80,)
Alignment
alignment
是Image的一个很重要的参数,它能够帮忙咱们设置图片的地位。有以下几个枚举值
参数 | 形容 |
---|---|
topCenter | 居中靠上 |
topRight | 右上角 |
centerLeft | 居中靠左 |
center | 居中 |
centerRight | 居中靠右 |
bottomLeft | 居右下角 |
bottomCenter | 居中靠下 |
bottomRight | 居右下角 |
BoxFit
fit
参数是很重要的布局参数,当咱们的图片内容跟Image设置的大小不齐全吻合的时候,fit
的参数值BoxFit
能够帮忙咱们做最优的调整和显示
5. BoxFit.containfit
的默认值是BoxFit.contain
。由下图咱们不难看出,BoxFit.contain
会等比例缩放,放弃图片的原始的比例并且显示在Image内。
6. BoxFit.fill
由图可见BoxFit.fill
会充斥整个容器,如果图片大小与容器不齐全吻合,可能会呈现拉伸。
7. BoxFit.coverBoxFit.cover
会放弃图片资源的大小,如果超过的局部会被裁掉不会显示。
8. BoxFit.fitWidthBoxFit.fitWidth
会使宽度充斥整个容器,高度会按比例缩放,图片不会被拉伸,超出容器的局部会被剪裁。
9. BoxFit.fitHeightBoxFit.fitHeight
跟BoxFit.fitWidth
类似,高度会充斥整个容器,宽度会按比例缩放,图片不会被拉伸,超出容器的局部会被剪裁。
10. BoxFit.none
none示意没有设置显示策略,以原始大小居中来显示。
11. BoxFit.scaleDown
当图片资源大于容器的时候,成果相当于 BoxFit.none
,
当组件比图片小时,成果相当于 BoxFit.contain
。
对于加载过的图片Flutter是会帮忙咱们做内存缓存,最大缓存数量是1000,最大缓存内存空间是100M。
想体验以上的示例的运行成果,能够到我的Github仓库我的项目flutter_app
->lib
->routes
->image_page.dart
查看,并且能够下载下来运行并体验。