Image是一个用于展示图片的组件。支持 JPEG、PNG、GIF、Animated GIF、WebP、Animated WebP、BMP 和 WBMP 等格式。

Image 有许多的静态函数:

  • new Image.asset - 用于从资源目录的显示图片。
  • new Image.network - 用于从网络上显示图片。
  • new Image.file - 用于从文件里显示图片。
  • new Image.memory - 用于从内存里(Uint8List)显示图片。
// 资源图片
new Image.asset('imgs/logo.jpeg'),
//网络图片
new Image.network(
'https://flutter.io/images/homepage/header-illustration.png'),
// 本地文件图片
new Image.file(new File("/Users/gs/Downloads/1.jpeg")),
// Uint8List图片
new Image.memory(bytes),
//使用ImageProvider加载图片
new Image(image: new NetworkImage("https://flutter.io/images/homepage/screenshot-2.png"))

  

Image 有以下常用属性:

  • alignment → AlignmentGeometry - 图像边界内对齐图像。
  • centerSlice → Rect - 九片图像的中心切片。
  • color → Color - 该颜色与每个图像像素混合colorBlendMode。
  • colorBlendMode → BlendMode - 用于 color 与此图像结合使用。
  • fit → BoxFit - 图像在布局中分配的空间。
  • gaplessPlayback → bool - 当图像提供者发生变化时,是继续显示旧图像(true)还是暂时不显示(false)。
  • image → ImageProvider - 要显示的图像。
  • matchTextDirection → bool - 是否在图像的方向上绘制图像 TextDirection。
  • repeat → ImageRepeat - 未充分容器时,是否重复图片。
  • height → double - 图像的高度。
  • width → double - 图像的宽度。

圆角图片

Image 是不支持圆角和阴影的,目前可以通过使用 CircleAvatar 和 Container 实现。

var img = 'https://b-ssl.duitang.com/uploads/item/' +
'201602/15/20160215235057_EU3tS.thumb.700_0.jpeg'; new CircleAvatar(
backgroundImage: new NetworkImage(url),
radius: 100.0, // --> 半径越大,图片越大
),

  

使用 Container 实现,其原理是把图片放在 decoration 里,而不是 child 里,因为把图片放在 child 里并设置 borderRadius 时会出现一个图片穿透的问题,Container 还没有 overflow 属性。

new Container(
width: 200.0,
height: 200.0,
margin: const EdgeInsets.all(20.0),
decoration: new BoxDecoration(
color: Colors.white,
image: new DecorationImage(image: new NetworkImage(this.imgsrc), fit: BoxFit.cover),
shape: BoxShape.circle,
),
),

  

上面实现的都是一个圆形图片,下面的实现一个真正的圆角图片。

new Container(
width: 200.0,
height: 200.0,
margin: const EdgeInsets.all(20.0),
decoration: new BoxDecoration(
color: Colors.white,
image: new DecorationImage(image: new NetworkImage(this.imgsrc), fit: BoxFit.cover),
shape: BoxShape.rectangle, // <-- 这里需要设置为 rectangle
borderRadius: new BorderRadius.all(
const Radius.circular(20.0), // <-- rectangle 时,BorderRadius 才有效
),
),
),

  

Flutter Image(图片)的更多相关文章

  1. Flutter裁剪图片

    最近在学习中需要用到裁剪图片,记录一下解决方法 思路: 使用canvas的drawImageRect()方法,对Image进行裁剪,这里的Image需要 'dart:ui' 库中的Image. 1. ...

  2. flutter的 图片组件基本使用

    import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends Statele ...

  3. Flutter 实现图片裁剪

    实现原理很简单 ,自己绘制一个裁剪框, 根据手势 选择到适合的位置 ,然后将选中的区域绘制到一个新的图片上,从而完成裁剪 裁剪框的绘制  这里我是根据点来连线的  因为每个点上会绘制一个拉伸的标识符 ...

  4. Flutter设置图片为正方形

    AspectRatio( aspectRatio:/, child:Image.network("src") )

  5. 解决flutter的image_cropper组件引入报错问题

    在使用flutter的图片裁剪组件image_cropper,github:https://github.com/hnvn/flutter_image_cropper 根据它的要求,安卓需要在文件[A ...

  6. 转:Flutter开发中踩过的坑

    记录一下入手Flutter后实际开发中踩过的一些坑,这些坑希望后来者踩的越少越好.本文章默认读者已经掌握Flutter初步开发基础. 坑1问题:在debug模式下,App启动第一个页面会很慢,甚至是黑 ...

  7. Flutter学习笔记(36)--常用内置动画

    如需转载,请注明出处:Flutter学习笔记(36)--常用内置动画 Flutter给我们提供了很多而且很好用的内置动画,这些动画仅仅需要简单的几行代码就可以实现一些不错的效果,Flutter的动画分 ...

  8. Flutter 异常处理之图片篇

    背景 说到异常处理,你可能直接会认为不就是 try-catch 的事情,至于写一篇文章单独来说明吗? 如果你是这么想的,那么本篇说不定会给你惊喜哦~ 而且本篇聚焦在图片的异常处理. 场景 学以致用,有 ...

  9. flutter 动画双指放大图片

    class GridAnimation extends StatefulWidget { @override State<StatefulWidget> createState() { r ...

  10. 技术胖Flutter第四季-23静态资源和项目图片的处理

    技术胖Flutter第四季-23静态资源和项目图片的处理 视频地址:https://www.bilibili.com/video/av35800108/?p=24 项目中引用图片静态资源文件 这里就是 ...

随机推荐

  1. python复合数据类型以及英文词频统计

    这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753. 1.列表,元组,字典,集合分别如何增删改查及遍历. 列 ...

  2. vue+elementui搭建后台管理界面(6登录和菜单权限控制[二])

    根据权限计算路由的代码 /** * 通过meta.role判断是否与当前用户权限匹配 * @param roles * @param route */ function hasRoles (roles ...

  3. TICK/TIGK运维栈安装运行【上】

    TICK/TIGK运运维metrics栈包括 InfuluxDB:为时间序列数据专门定制的高性能数据存储.TSM引擎允许高速接收和数据压缩.完全go语言编写.编译成一个单一的二进制,没有外部依赖.简单 ...

  4. Deep Reinforcement Learning with Iterative Shift for Visual Tracking

    Deep Reinforcement Learning with Iterative Shift for Visual Tracking 2019-07-30 14:55:31 Paper: http ...

  5. Xamarin图表开发基础教程(10)OxyPlot框架支持的图表类型

    Xamarin图表开发基础教程(10)OxyPlot框架支持的图表类型 OxyPlot组件支持26种图表,这些图表按照功能和样式可以分为4大类,分别为线型图表.条型图表.金融图表和其它图表. 线型图表 ...

  6. Spring cloud微服务安全实战-7-2docker快速入门

    因为后面运行的这些可视化的工具都是用docker去run 的.为了避免对docker完全没有概念的同学听不懂,帮助大家从概念上去理解docker是个什么东西. 最核心的东西就是镜像,把它理解为Spri ...

  7. win10找不到hosts文件(设置显示隐藏文件也找不到)解决方法

    Win10系统中的Hosts文件有很多作用,屏蔽网址,指定解析,跳转等等,所以我们经常会通过编辑Hosts文件来达成一些目的,一般来说hosts文件是隐藏的,我们需要显示受保护的文件才可以,但是有一些 ...

  8. window git安装 以及 tortoiseGit安装与使用

    一:Git安装 使用TortoiseGit这个程序,需要先安装Git Windows版本Git的下载页面: http://git-scm.com/download/win 1:下载Git到文件夹, 2 ...

  9. 通过Onvif设备探索获取EasyNVR网页无插件播放所需要的摄像机硬盘录像机NVR的RTSP地址

    想实现网络监控摄像头进行视频直播的朋友门应该知道,方法其实非常简单,你不需要使用支持直播的网络摄像机,只需要经过一套流媒体服务器将监控摄像头的RTSP视频流转为RTMP\HLS\HTTP-FLV视频流 ...

  10. mybatis中封装结果集常见示例

    1.返回一个对象 public interface EmployeeMapper { public Employee getEmpByMap(Map<String, Object> map ...