Flutter小部件之图片(Image)和图标(Icon)

Posted

tags:

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

参考技术A 在Flutter中,我们可以使用Image控件来显示图片,一般来讲我们的图片资源都来源于网络或者本地图片。
Flutter中的Image也是类似。

我们先来看看Image的构造方法

下面我们来看看其常用的属性

可以看到,其常用属性跟前端中的css很像。

下面我们来简单用一用Image控件

首先是必填参数image,它接收一个ImageProvider类型的值。ImageProvider是一个抽象类,他下面有下图这些实现类,由下面这些实现类可以看出,image是可以从资源,内存,网络,和文件中获取图片。

我们先来试试加载网络图片
首先看看NetworkImage构造方法,很简单,传个url就可以了

如下:

嗯,就是这么简单。其他3种情况使用也是类似的,自行看源码即可。

实际上,Flutter给我们提供了扩展方法,使用起来更加简单,通常我们直接使用提供的扩展方法即可
如下

可以看到,他们的构造方法基本类似。

所以我们也可以这样写,跟上面的效果是一致的。

大致分为一下几步

1.创建一个文件夹,用于存放图片,如图,我创建了一个imgs的文件夹,放了一张图片

2.在pubspec.yaml中声明资源,注意声明的时候路径和前面的-是有间隔的,不然的话会报#/properties/flutter/properties/assets: type: wanted [array] got -imgs/code.png
类似的错误,声明完成后点击右上方的packages get



下面我们再来看看其他属性。
width,height
宽高没什么好说的,就是设置宽度和高度

配合color使用,用于设置颜色的混合模式。BlendMode是一个枚举,他有很多值
详细解析还是看官方文档吧,值太多了,我们随便用用

用于设置图片的填充方式,当图片本身小于设置的宽高或者比父控件的宽高小时,我们可以设置该属性控制图片的显示。
其值的类型是BoxFit。是个枚举

具体含义还是直接看文档即可

设置图片的对齐方式,接收一个Alignment类型的值,值如下,很好理解

为了方便看效果我们在外边套了个Container,简单的把它理解为一个容器布局就可以了,类似于html中的div或android中的Layout,我们给Container设置了宽高和背景颜色。

bottomLeft效果如下,其他的自行尝试

相对于Image,ICON可以像web一样使用字体图标,并且可以使用矢量图,无需担心失真的问题,并且体积相对较小。

我们先来看看其构造方法

很简单,我们直接来用一用

默认情况下,pubspec.yaml中uses-material-design的值为true.我们默认就可以使用Material Design字体图标

以上是关于Flutter小部件之图片(Image)和图标(Icon)的主要内容,如果未能解决你的问题,请参考以下文章

检查图像是不是已加载到 Flutter 中的 Image.network 小部件中

Flutter - 如何在一行中显示文本和图标?

Flutter:何时创建无状态或有状态页面?

在 Flutter 中灵活制作小部件溢出

颤振图标小部件在 vscode 中没有预览

Flutter - 来自 Firebase 的英雄小部件子图像 url