题记
—— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。


目前在西瓜视频上免费刊登 Flutter 系列教程,每日更新,欢迎关注接收提醒

【x1】微信公众号的每日提醒 随时随记 每日积累 随心而过

【x2】各种系列的视频教程 免费开源 关注 你不会迷路

【x3】系列文章 百万 Demo 随时 复制粘贴 使用


Flutter Image 组件简介

  • Android ios 原生中使用 ImageView 来加载显示图片。
  • 在flutter 中通过Image来加载并显示图片。
  • 所有的widget并不是直接绘制图片的,而是控制的图片的主要属性的容器,负责绘制的是RenderObject,他们中间是通过ElementTree来联系起来。有了这个基础后,所有的widget都不会提供画布(canvas)来直接绘制image
  • RawImage 这是一个最基础图片容器Widget。
  • Image 这是一个通用包装类,它包装了RawImage。

前言 Image 视频教程免费分享

Flutter组件精讲【70】Image图片组件的使用概述 第一弹
Flutter组件精讲【71】Image图片组件的使用概述 第二弹
Flutter组件精讲【72】Image图片加载本地图片 第一弹
Flutter组件精讲【73】Image图片加载本地图片 1 第二弹


1 Image 组件 加载网络图片


var imageUrl = "http://pic31.nipic.com/20130711/8952533_164845225000_2.jpg";Image(image: NetworkImage(imageUrl),width: 100.0,
)

或者

Image.network(imageUrl,scale: 8.5,
),

或者

new FadeInImage.assetNetwork(//占位图placeholder: 'images/logo.png',image: imageUrl,width: 120,fit: BoxFit.fitWidth,),

或者

 new CachedNetworkImage(width: double.infinity,height: double.infinity,fit: BoxFit.fill,imageUrl: imageUrl,placeholder: (context, url) => new ProgressView(),errorWidget: (context, url, error) => new Icon(Icons.error),),

2 Image 加载本地图片


new Image.file(File('/storage/emulated/0/Download/test.jpg'),width: 120,fit: BoxFit.fill,//fill(全图显示且填充满,图片可能会拉伸),contain(全图显示但不充满,显示原比例),cover(显示可能拉伸,也可能裁剪,充满)//fitWidth(显示可能拉伸,可能裁剪,宽度充满),fitHeight显示可能拉伸,可能裁剪,高度充满),scaleDown(效果和contain差不多,但是)
),

3 Image 加载assets图片

3.1 在工程根目录下创建一个images目录,并将图片xxx.png拷贝到该目录。

3.2 在pubspec.yaml中的flutter部分添加如下内容:

  assets:- images/xxx.png

3.3 代码中使用

Image(image: AssetImage("images/xxx.png"),width: 100.0
);

Image.asset("images/xxx.png",width: 100.0,
)

4 加载圆角图片

new ClipOval(child: Image.network(imageUrl,width: 100,height: 100,fit: BoxFit.fitHeight,),
),

或者

new CircleAvatar(backgroundImage: NetworkImage(imageUrl),radius: 50.0,),

4 加载圆角矩形图片

new Container(width: 120,height: 60,decoration: BoxDecoration(shape: BoxShape.rectangle,borderRadius: BorderRadius.only(topLeft: Radius.circular(5),bottomLeft: Radius.circular(5),),image: DecorationImage(image: NetworkImage(imageUrl),
//      image: AssetImage('images/icon_main_bg.png'),fit: BoxFit.cover),),
),

或者

new ClipRRect(child: Image.network(imageUrl,scale: 8.5,fit: BoxFit.cover,),borderRadius: BorderRadius.only(topLeft: Radius.circular(20),topRight: Radius.circular(20),bottomLeft: Radius.circular(20),bottomRight: Radius.circular(20),),),

3 Image 属性说明

const Image({...this.width, //图片的宽this.height, //图片高度this.color, //图片的混合色值this.colorBlendMode, //混合模式this.fit,//缩放模式this.alignment = Alignment.center, //对齐方式this.repeat = ImageRepeat.noRepeat, //重复方式...
})

3.1 width、height

width、height:用于设置图片的宽、高,当不指定宽高时,图片会根据当前父容器的限制,尽可能的显示其原始大小,如果只设置width、height的其中一个,那么另一个属性默认会按比例缩放,但可以通过下面介绍的fit属性来指定适应规则。

3.2 fit

  • fit:该属性用于在图片的显示空间和图片本身大小不同时指定图片的适应模式。适应模式是在BoxFit中定义,它是一个枚举类型,有如下值:

  • fill:会拉伸填充满显示空间,图片本身长宽比会发生变化,图片会变形。

  • cover:会按图片的长宽比放大后居中填满显示空间,图片不会变形,超出显示空间部分会被剪裁。

  • contain:这是图片的默认适应规则,图片会在保证图片本身长宽比不变的情况下缩放以适应当前显示空间,图片不会变形。

  • fitWidth:图片的宽度会缩放到显示空间的宽度,高度会按比例缩放,然后居中显示,图片不会变形,超出显示空间部分会被剪裁。

  • fitHeight:图片的高度会缩放到显示空间的高度,宽度会按比例缩放,然后居中显示,图片不会变形,超出显示空间部分会被剪裁。

  • none:图片没有适应策略,会在显示空间内显示图片,如果图片比显示空间大,则显示空间只会显示图片中间部分。


【1】 目前在西瓜视频上免费刊登 Flutter 系列教程,每日更新,欢迎关注接收提醒点击查看提示


【2】 本公众号会首发系列专题文章,付费的视频课程会在公众号中免费刊登,在你上下班的路上或者是睡觉前的一刻,本公众号都是你浏览知识干货的一个小选择,收藏不如行动,在那一刻,公众号会提示你该学习了。

Flutter Image 图片加载相关推荐

  1. Flutter 本地图片加载不出来

    pubspec.yaml 中添加 项目根目录/assets/images/ 中是存在该图片的 但图片无论怎么刷新都加载不出来,根据文档反复对了很多次,实在找到不到代码在哪里出了问题. 重点来了-重新启 ...

  2. 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )

    文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...

  3. Flutter工具类 (二) 图片加载框架

    导入依赖 # 图片加载库cached_network_image: ^3.2.1 工具类 import 'dart:math';import 'package:cached_network_image ...

  4. Flutter开发之图片加载(九)

    移动开发少不了显示图片,今天就介绍 fluter中如何加载图片,图片加载一般分为本地加载和网络加载. 本地加载 在工程下建一个New Floder 文件夹名:images 将准备好的图片拖到 imag ...

  5. Fresco图片加载+EventBus+Butterknife+Retrofit+RxJava+RxAndroid

    使用MVP框架搭建,分包明确,V层和M层解耦,通过接口完成V层和P层以及P层和M层通信,解决内存泄漏问题 Retrofit做网络请求,封装网络请求工具类,使用单例模式,添加日志拦截器打印网络请求内容 ...

  6. 小程序一次性上传多个本地图片,上拉加载照片以及图片加载延迟解决之道

    一:小程序之一次性上传多个本地相片 最近由于项目需要所以学了下小程序,也做了一些东西,随后便有了以下的一些总结了,现在说说如何使用小程序一次性上传多个本地相片. 问题描述 最近做项目的时候要实现一个上 ...

  7. SDWebImage使用,图片加载和缓存

    本文转载至 http://blog.163.com/wzi_xiang/blog/static/659829612012111402812726/ 清除缓存: [[SDImageCache share ...

  8. Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)

    列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...

  9. Service Worker 图片加载失败处理

    Service Worker 图片加载失败处理 参考文档 git clone https://gitee.com/wjj0720/Service-Worker.git 运行 npm i npm sta ...

最新文章

  1. Caused by: java.lang.IllegalStateException: View ' '
  2. 04.微博消息的语言检测
  3. 网络编程学习笔记(shutdown函数)
  4. Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
  5. Web前端要学什么语言?需掌握哪些知识?
  6. 【Linux】一步一步学Linux——ipcs命令(141)
  7. K8s 应用管理之道 - 有状态服务
  8. BZOJ3170: [Tjoi2013]松鼠聚会 - 暴力
  9. cod16 服务器正在维护,使命召唤16玩不了怎么办 使命召唤16进不去解决方法
  10. 算法-冒泡排序和快速排序
  11. 提高Entity Framework性能的一些建议
  12. 小程序内嵌H5页面判断微信及小程序环境
  13. C#进行注册表项和键值操作
  14. Photoshop安装:详细安装步骤
  15. prisma2.0和nexus搭建graphql后端(2)—nexus
  16. 第五天学习--存储结构与磁盘划分
  17. i12蓝牙耳机怎么设置成中文_windows10的蓝牙怎么打开?如何修复Windows 10中的蓝牙问题...
  18. autojs查找图片相似轮廓
  19. 71 ----二次曲面方程:椭球面、双曲面、抛物面、二次曲面的种类
  20. 车载以太网 - SomeIP - 总纲

热门文章

  1. Mac 更适合做开发?从零把 Mac 打造成开发利器
  2. 人生苦短,Python值得 这些Pandas隐藏小技巧你知道吗?
  3. 2021最新全球CS专业排名发布,CMU再夺榜首,清华和MIT并列
  4. 论文必备神器,1行代码搞定Latex公式编写,这个4.6M的Python小插件
  5. 小米集团2021未来星专项招聘计划!
  6. 【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作
  7. 解决string字符串关于copy函数的C4996错误
  8. 用eclipse开发android小程序,【转】Eclipse 开发Android小程序遇到的问题总结
  9. 决胜蓝桥杯python组-字符串、列表
  10. php能做的事情,成就事业要做的十件事