Flutter 开发实战

235课时
1K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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、最后 RawImageRenderImage 通过 paint 绘制 ImageInfo 中的 ui.Codec

注意,这的 ui.Codec 和后面的 ui.Image等,只是因为 Flutter 中在导入对象时,为了和其他类型区分而加入的重命名:import 'dart:ui' as ui show Codec;

是不是感觉有点晕了?relax!后面我们将逐步理解这个流程。

点击大图查看