Flutter初学之路—`Image` (图片组件)

Image(图片组件)用来显示图像的组件,提供了多个构造函数:

  • new Image:从ImageProvider获取图像;
  • new Image.asset:加载资源图片;
  • new Image.network:加载网络图片;
  • new Image.file:加载本地图片文件;
  • new Image.memory:加载Unit8List资源图片。

图片组件支持以下格式图片:JPEG、PNG、动图GIF、WebP、动图WebP、BMP和WBMP。
若要自动执行像素密度感知有用的分辨率,需使用AssetImage指定图像,并确保在组件树中的图像组件上方存在MaterialAppWidgetsAppMediaQuery组件。
图像是使用paintImage绘制的,其更详细的描述了该类中各个字段的含义。
参考:

  • Icon:显示来自字体的图像;
  • new lnk.image:这是在一个material application中显示图像的首选方法(特别是当图像位于一个Material中并且上边还存在InkWell时)。

继承

Object > Diagnosticable > DiagnosticableTree > Widget > StatefulWidget > Image

构造函数

  • ImageProvider获取图像:
Image({
    Key key,  //图像组件的唯一标识符
    @required ImageProvider image,//要显示的图像
    String semanticLabel,//图像的语义描述
    bool excludeFromSemantics:false,  //是否将此图像从语义中排除
    double width,//设置图像宽度
    double height,//设置图像高度
    Color color,  //如果非空,则使用`colorBlendMode`将此颜色与图像每个像素混合
    BlendMode colorBlendMode,  //用于将颜色与此图像结合
    BoxFit fit,  //如何在布局过程中将图像嵌入到分配的空间中
    AlignmentGeometry alignment: Alignment.center,//如何在其范围内对齐图像
    ImageRepeat repeat: ImageRepeat.noRepeat,//图像的平铺模式
    Rect centerSlice,    //9块图像的中心切片
    bool matchTextDirection: false,//是否按照`TextDirection`的方向绘制图像
    bool gaplessPlayback: false,//当图像提供程序更改时,是否继续显示旧图像(True),或短暂显示空(False)
    FilterQuality filterQuality: FilterQuality.low,//用于设置图像的FilterQuality
  })
  • 加载资源图片
  Image.asset(String name, {
    Key key,
    AssetBundle bundle,//应用程序使用的资源合集
    String semanticLabel,
    bool excludeFromSemantics: false,
    double scale,
    double width,
    double height,
    Color color,
    BlendMode colorBlendMode,
    BoxFit fit,
    AlignmentGeometry alignment: Alignment.center,
    ImageRepeat repeat: ImageRepeat.noRepeat,
    Rect centerSlice,
    bool matchTextDirection: false,
    bool gaplessPlayback: false,
    String package,
    FilterQuality filterQuality: FilterQuality.low,
  })
  • 加载网络图片
  Image.network(String src, {
    Key key,
    double scale = 1.0,
    String semanticLabel,
    bool excludeFromSemantics: false,
    double width,
    double height,
    Color color,
    BlendMode colorBlendMode,
    BoxFit fit,
    AlignmentGeometry alignment: Alignment.center,
    ImageRepeat repeat: ImageRepeat.noRepeat,
    Rect centerSlice,
    bool matchTextDirection: false,
    bool gaplessPlayback: false,
    FilterQuality filterQuality: FilterQuality.low,
    Map<String, String> headers,
  })
  • 加载本地图片文件
  Image.file(File file, {
    Key key,
    double scale = 1.0,
    String semanticLabel,
    bool excludeFromSemantics: false,
    double width,
    double height,
    Color color,
    BlendMode colorBlendMode,
    BoxFit fit,
    AlignmentGeometry alignment: Alignment.center,
    ImageRepeat repeat: ImageRepeat.noRepeat,
    Rect centerSlice,
    bool matchTextDirection: false,
    bool gaplessPlayback: false,
    FilterQuality filterQuality: FilterQuality.low,
  })
  • 加载Unit8List资源图片
  Image.memory(Uint8List bytes, {
    Key key,
    double scale = 1.0,
    String semanticLabel,
    bool excludeFromSemantics: false,
    double width,
    double height,
    Color color,
    BlendMode colorBlendMode,
    BoxFit fit,
    AlignmentGeometry alignment: Alignment.center,
    ImageRepeat repeat: ImageRepeat.noRepeat,
    Rect centerSlice,
    bool matchTextDirection: false,
    bool gaplessPlayback: false,
    FilterQuality filterQuality: FilterQuality.low,
  })

属性

属性名 类型 说明
key Key 图像组件的唯一标识符
alignment AlignmentGeometry 如何在其范围内对齐图像
centerSlice Rect 9块图像的中心切片
color Color 如果非空,则使用colorBlendMode将此颜色与图像每个像素混合
colorBlendMode BlendMode 用于将颜色与此图像结合
excludeFromSemantics bool 是否将此图像从语义中排除
filterQuality FilterQuality 用于设置图像的FilterQuality
fit BoxFit 如何在布局过程中将图像嵌入到分配的空间中
gaplessPlayback bool 当图像提供程序更改时,是否继续显示旧图像(True),或短暂显示空(False)
height double 设置图像高度
width double 设置图像宽度
image ImageProvider 要显示的图像
matchTextDirection bool 是否按照TextDirection的方向绘制图像
repeat ImageRepeat 图像的平铺模式
semanticLabel String 图像的语义描述
hashCode int 哈希码
runtimeType Type 对象运行时类型的表示形式

方法:

方法名 类型 说明
createState() _ImageState 在树中的给定位置为这个组件创建可变状态
debugFillProperties(DiagnosticPropertiesBuilder properties) void 添加与节点相关联的其他属性
createElement() StatefulElement 创建一个StatefulElement来管理这个组件在树中的位置
debugDescribeChildren() List<DiagnosticsNode> 返回描述词节点子节点的diagnostics节点对象列表
noSuchMethod(Invocation invocation) dynamic 当访问不存在的方法或属性时调用
toDiagnosticsNode({String name, DiagnosticsTreeStyle style}) DiagnosticsNode 返回由使用调试工具和DiagnostisNode.toStringDep的对象的调试表示形式
toString({DiagnosticLevel minLevel: DiagnosticLevel.debug}) String 返回此对象的字符串表示形式
toStringDeep({String prefixLineOne:'', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug}) String 返回子节点和它的子节点的字符串表示形式
toStringShallow({Sting joiner:',', DiagnosticLevel minLevel:DiagnosticLevel.debug}) String 返回对象的一行详细说明
toStringShort() String 对组件简短的文本描述

参考文档:Image class

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容

  • Image的用法 Flutter 提供了显示图片的控件Image。并且有多种构造函数。 new Image 从I...
    简简单单敲代码阅读 1,262评论 0 3
  • 窗前捧卷阅名诗, 帘外鸣禽到访时。 转首目迎方致意, 腾空翅展已归枝。
    水波杨山阅读 187评论 2 3
  • 第一章《The Challenge of the Future》:全球化是横向的扩张,只能复制以前就有的成功,而科...
    JustEric阅读 480评论 0 1
  • 我本不甘平凡, 奈何我却无动于衷。 那天我突然萌生一颗小小的念头, 我想去一趟人们经常谈起的那座城, 那座他们说繁...
    漫郎阅读 564评论 9 8
  • “你们被捕的地方是灵派的总部……”神秘人说,“我叫阿贵。”
    高易阅读 286评论 0 2