Flutter Image图片加载流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter Image图片加载流程相关的知识,希望对你有一定的参考价值。

参考技术A 图片加载过程是由ImageProvider触发的。而ImageProvider表示异步获取图片数据的操作,可以从资源,网络,文件等不同的渠道获取。

首先,ImageProvider根据_ImageState中传递的图片配置生成对应的图片缓存key,然后去ImageCache中查找是否由对应的图片缓存,如果有,通知刷新对应的UI;如果没有通过ImageStream异步加载,加载完成后更新缓存,然后通知_ImageState刷新UI。

ImageCache采用的是LRU(Least Recently Used)

第三节 Flutter Image图片组件的使用

参考技术A Image组件的构造方法
在 Android 中,我们都知道,图片的显示方式有很多,资源图片、网络图片、文件图片等等,在 Flutter 中也有多种方式,用来加载不同形式的图片:

Image:通过ImageProvider来加载图片

Image.asset:用来加载本地资源图片

Image.file:用来加载本地(File文件)图片

Image.network:用来加载网络图片

Image.memory:用来加载Uint8List资源(byte数组)图片

Image 的一个参数是 ImageProvider,基本上所有形式的图片加载都是依赖它,这个类里面就是实现图片加载的原理。用法如下:

加载一个本地资源图片,和 Android 一样,有多种分辨率的图片可供选择,但是沿袭的是 iOS 的图片风格,分为 1x,2x,3x,具体做法是在项目的根目录下创建两个文件夹,如下图所示:

还要配置如下
在pubspec.yaml文件

加载一个本地 File 图片,比如相册中的图片,用法如下

加载一个网络图片,用法如下:

有的时候我们需要像Android那样使用一个占位图或者图片加载出错时显示某张特定的图片,这时候需要用到 FadeInImage 这个组件:

用来将一个 byte 数组加载成图片,用法如下:

以上是关于Flutter Image图片加载流程的主要内容,如果未能解决你的问题,请参考以下文章

第三节 Flutter Image图片组件的使用

flutter 图片组件

Flutter 基本组件之Image

Flutter之Image Widget(六)

Flutter自定义Widget—可加载原生图片资源的Image

Flutter自定义Widget—可加载原生图片资源的Image