我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

flutter导入图片,flutter 图片加载框架

Flutter 本地图片导入 2倍图 3倍图

1、flutter项目中分别创建assets、images文件夹,在images文件夹下创建 2.0x 和 3.0x文件夹,用来分别存放2倍图3倍图。

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了西湖免费建站欢迎大家使用!

层级结构如图下图:

2、在pubspec.yaml进行配置 (注意flutter下 assets:与uses-material-design: 层级结构要左对齐否则会报错 点击查看错误展示 )

3、cd 进入 flutter 项目目录下,终端执行 flutter pub get 命令,使配置生效

4、图片使用

Flutter 中不同分辨率的图片如何加载

1.说明:

我们都知道在使用 Android 原生开发 app 的时候不同分辨率的图片放置到下面对应的文件夹中:

但是使用 Flutter 开发 app 时却有不同,他们也有一个对应的关系,按照他们的对应关系建立文件夹就可以了,如下:

2.使用:

首先在 Flutter 项目根目录中创建一个 images 文件夹用来存放图片资源;

然后在项目目录下找到 pubspec.yaml 文件打开,声明图片资源;

如何加载不同分辨率的图呢,例如 android 中的 hdpi,xhdpi,xxhdpi 和 ios 中的 1x,2x,3x。只需要在 images 文件夹中在创建两个 2.0x,3.0x 文件夹用来存放 2x,3x 的图片资源:

如上图,1.0x 图片放到了 account 文件夹中,account 文件夹下又有 1.5x、2.0x、3.0x、4.0x 文件夹,分别存放对应分辨率的图片,这里要注意文件夹的对应关系。

使用图片时,只需要使用 account 文件夹下的图片就行了,系统会根据手机的分辨率,加载对应文件夹中的图片,如:

详解flutter中本地资源图片的使用

一. flutter中我们想加载本地图片,需要两步:

二. flutter项目中本地图片加载的原理

在加载图片时,系统自动会根据屏幕分辨率优先选择到符合自己分配率的文件夹(2.0x或者3.0x或者4.0x)下去取相对应的图片,如果当前文件夹下没有,则会到低一倍的文件夹下去,如果还没有,则继续向更低一倍去取。(比如:iOS 5.5英寸及以上屏幕会优先选择去3.0x下去取图片,如果3.0x不存在或者3.0x文件夹下没有,则去2.0x下取;如果2.0x不存在或者2.0x下没有,则去1.0x下取;1.0x下再没有,则在images文件下取)。

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

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图片加载流程

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

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

ImageCache采用的是LRU(Least Recently Used)


当前标题:flutter导入图片,flutter 图片加载框架
链接地址:http://shouzuofang.com/article/dsdhedg.html

其他资讯