2分钟
01 图片流程-1
Flutter 的图片加载流程其实“并不复杂”,具体可点击下方大图查看,以网络图片加载为例子,先简单总结,其中主要流程是:
- 1、首先
Image
通过ImageProvider
得到ImageStream
对象 - 2、然后
_ImageState
利用ImageStream
添加监听,等待图片数据 - 3、接着
ImageProvider
通过load
方法去加载并返回ImageStreamCompleter
对象 - 4、然后
ImageStream
会关联ImageStreamCompleter
- 5、之后
ImageStreamCompleter
会通过 http 下载图片,再经过PaintingBinding
编码转化后,得到ui.Codec
可绘制对象,并封装成ImageInfo
返回 - 6、接着
ImageInfo
回调到ImageStream
的监听,设置给_ImageState
build 的RawImage
对象。 - 7、最后
RawImage
的RenderImage
通过 paint 绘制ImageInfo
中的ui.Codec
注意,这的
ui.Codec
和后面的ui.Image
等,只是因为 Flutter 中在导入对象时,为了和其他类型区分而加入的重命名:import 'dart:ui' as ui show Codec;
是不是感觉有点晕了?relax!后面我们将逐步理解这个流程。
学员评价