flutter之图片和icon

1.基本概念

Flutter中,通过Image来加载并显示图片,Image的数据源可以是asset,文件,内存以及网络。

2.ImageProvider

ImageProvider是一个抽象类,主要定义了图片数据获取的接口load(),从不同的数据源获取图片需要实现不同的ImageProvider,比如AssetImage是实现了从Asset中加载图片的ImageProvider,而NetworkImage实现了从网络中加载图片的ImageProvider。

Image Widget有一个必选的image参数,它对应一个ImageProvider,如下面例子:

如果是从asset中加载图片的话,那么要先在pubspec.yml文件中的flutter部分添加以下内容:

1
2
3
flutter:
assets:
- images/WechatIMG540.jpeg

具体的实例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Image(
image: AssetImage("images/some.png"),
width: 100.0
);
// 或者像下面这样
Image.asset("images/some.png", width: 100.0);

// 对于网络图片来说,其用法可能更加简单一点
Image(
image: NetworkImage('image_url'),
width: 300.0
);

// 或者像下面这样的便捷写法
Image.network(
'img_url',
width: 300.0
);