Skip to content

Commit 4485c72

Browse files
samsam
authored andcommitted
feat: Image
1 parent 850b7ce commit 4485c72

File tree

4 files changed

+108
-5
lines changed

4 files changed

+108
-5
lines changed

assets/imgs/cool.jpg

22.7 KB
Loading

docs/widget/common/image/index.md

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,51 @@
1-
## **文档完善中**
1+
## **Image**
2+
3+
>
4+
用于展示图片的控件,支持本地图片,资源图片,网络图片等加载方式
5+
6+
### 构造方法
7+
``` dart
8+
Image({
9+
Key key,
10+
@required this.image,
11+
this.semanticLabel,
12+
this.excludeFromSemantics = false,
13+
this.width,
14+
this.height,
15+
this.color,
16+
this.colorBlendMode,
17+
this.fit,
18+
this.alignment = Alignment.center,
19+
this.repeat = ImageRepeat.noRepeat,
20+
this.centerSlice,
21+
this.matchTextDirection = false,
22+
this.gaplessPlayback = false,
23+
this.filterQuality = FilterQuality.low,
24+
})
25+
```
26+
27+
### 属性介绍
28+
* image:
29+
* Image(): 通用方法,使用ImageProvider(包括:AssetImage, NetworkImage, FileImage, MemoryImage)实现,如下方法本质上也是使用这个方法
30+
* Image.asset: 加载资源图片
31+
* Image.file: 加载本地图片文件夹
32+
* Image.network: 加载网络图片
33+
* Image.memory: 加载Uint8List资源图片
34+
* width:图片容器宽度
35+
* height:图片容器高度
36+
* color:color一般和colorBlendMod配合使用
37+
* colorBlendMode:和color配合使用,添加滤镜效果
38+
* fit:如何将图像分配到布局空间中
39+
* BoxFit.fill : 全图显示,显示尽可能拉伸,充满
40+
* BoxFit.contain : 全图显示,显示原比例,不需充满
41+
* BoxFit.cover : 显示可能拉伸,可能裁剪,充满
42+
* BoxFit.fitWidth : 显示尽可能拉伸,可能裁剪,宽度充满
43+
* BoxFit.fitHeight 显示尽可能拉伸,可能裁剪,高度充满:
44+
* BoxFit.none 无fit:
45+
* BoxFit.scaleDown 效果和contain差不多,但此属性不允许显示超过原图片大小,可小不可大:
46+
* alignment = Alignment.center:控制图片的显示位置
47+
* repeat = ImageRepeat.noRepeat:图片是否重复
48+
* centerSlice:九个补丁图像的中心切片
49+
* matchTextDirection = false:若值为turn,与Directionality配合使用,图片显示方向
50+
* gaplessPlayback = false:当ImageProvider发生变化后,重新加载图片的过程中,原图片的展示是否保留。若值为true,保留,若为false,不保留,直接空白等待下一张图片加载
51+
* filterQuality = FilterQuality.low:用于设置图像的FilterQuality

lib/widget/common/image/demo.dart

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ class Index extends StatefulWidget {
66
}
77

88
class _IndexState extends State<Index> {
9+
List _imageType = ['Image.network', 'Image.asset', 'ImageProvider'];
10+
911
@override
1012
void initState() {
1113
super.initState();
@@ -17,9 +19,60 @@ class _IndexState extends State<Index> {
1719
appBar: AppBar(
1820
title: Text('Image'),
1921
),
20-
body: Center(
21-
child: Text('更新中'),
22-
),
22+
body: Container(
23+
margin: EdgeInsets.fromLTRB(20.0, 0, 20.0, 0),
24+
child: ListView.builder(
25+
itemCount: _imageType.length,
26+
itemBuilder: (context, index) {
27+
return _Stack(_imageType[index]);
28+
},
29+
)
30+
)
2331
);
2432
}
33+
34+
Widget _Stack (String item) {
35+
return Stack(
36+
children: <Widget>[
37+
Container(
38+
margin: EdgeInsets.only(top: 5.0),
39+
width: double.infinity,
40+
child: _Image(item)
41+
),
42+
Positioned(
43+
top: 32,
44+
left: 32,
45+
child: Text(item, style: TextStyle(fontSize:20, color: Theme.of(context).primaryColor),),
46+
)
47+
],
48+
);
49+
}
50+
51+
Widget _Image (String item) {
52+
switch (item) {
53+
case 'Image.network':
54+
return Image.network(
55+
'https://desk-fd.zol-img.com.cn/t_s960x600c5/g2/M00/02/05/Cg-4WlVxbqyIUWdVAAZhyzM-HqkAAEs-AET61oABmHj388.jpg',
56+
fit: BoxFit.cover
57+
);
58+
break;
59+
case 'Image.asset':
60+
return Image.asset(
61+
'assets/imgs/cool.jpg',
62+
fit: BoxFit.cover
63+
);
64+
break;
65+
case 'ImageProvider':
66+
return Image(
67+
image: NetworkImage(
68+
'https://pic.qqtn.com/up/2017-10/15082099209936659.jpg'
69+
),
70+
);
71+
default:
72+
return Image.network(
73+
'https://desk-fd.zol-img.com.cn/t_s960x600c5/g2/M00/02/05/Cg-4WlVxbqyIUWdVAAZhyzM-HqkAAEs-AET61oABmHj388.jpg',
74+
fit: BoxFit.cover,
75+
);
76+
}
77+
}
2578
}

readme/widget_progress.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Flutter UI
5555
│ ├─flatbutton 【✔️ v1.0】
5656
│ ├─icon 【✔️ v1.0】
5757
│ ├─iconbutton
58-
│ ├─image
58+
│ ├─image 【✔️ v1.0】
5959
│ ├─listtile
6060
│ ├─placeholder
6161
│ ├─raisedbutton

0 commit comments

Comments
 (0)