Flutter图片处理:加载本地图片、网络图片以及图片的拉伸、切圆
·
1.加载本地图片
1.在项目根文件夹下新建images文件夹,再在images文件夹下新建2.0x、3.0x、4.0x这三个文件夹,将合适的图片分别放进这4个文件夹中,并保持名称相同。
示例图:

2.在yaml文件中配置图片
示例图:

3.在代码中加载本地图片
示例:
Container(
height: 300,
width: 300,
child: Image.asset(
"images/painting.jpg",
fit: BoxFit.cover,
),
),
效果图:

2.加载网络图片
Image.network(图片url地址)
示例:
Image.network(
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1583483377695&di=56a38f2813d5d0164bbb2baa54466a47&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201310%2F19%2F235356fyjkkugokokczyo0.jpg",
),
3.图片拉伸方式
flutter中的图片拉伸主要通过fit来实现。
其对应类是BoxFit。
其中常用的有:
BoxFit.contain(原图显示)
BoxFit.cover(自适应填充显示,图片不会变形,但可能被剪裁)
BoxFit.fitHeight(纵向填满,横向可能被剪裁)
BoxFit.fitWidth(横向填满,纵向可能被剪裁)
BoxFit.fill(填充视图,会使图片变形)
示例:
Image.network(
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1583483377695&di=56a38f2813d5d0164bbb2baa54466a47&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201310%2F19%2F235356fyjkkugokokczyo0.jpg",
fit: BoxFit.cover,
),
4.圆形图片
方法1:通过ClipOval实现(推荐)
示例:
Container(
height: 300,
width: 300,
child: ClipOval(
child: Image.network(
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1583486396591&di=328468b485f670c63c389195b15809a2&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2Fd%2F5458309a91914.jpg",
fit: BoxFit.cover,
),
),
),
效果图同方法2
方法2:通过Container实现
示例:
Container(
height: 300,
width: 300,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(150),
image: DecorationImage(
image: NetworkImage(
"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1583486396591&di=328468b485f670c63c389195b15809a2&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2Fd%2F5458309a91914.jpg",
),
fit: BoxFit.cover,
)
),
),
方法3:通过CircleAvatar组件实现,多用于头像
CircleAvatar(
backgroundImage: NetworkImage("https://dss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2841648446,236398816&fm=26&gp=0.jpg"),
),
效果图:
更多推荐


所有评论(0)