Flutter图片控件(七)

news2024/10/28 12:43:20

1、加载图片

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    home: MyHomePage(),
  ));
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Center(child: Text("图片控件")),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 静态引入方式1
            const Image(
              image: AssetImage("assets/imgs/touxiang.jpg"),
              width: 100.0,
            ),
            const SizedBox(height: 10.0),
            // 静态引入方式2
            Image.asset(
              "assets/imgs/touxiang.jpg",
              width: 50.0,
            ),
            const SizedBox(
              height: 10.0,
            ),
            // 从网络加载图像
            const Image(
              image: NetworkImage(
                  "https://cdn.jsdelivr.net/gh/Justinc-github/images/touxiang.jpg"),
              width: 100.0,
            )
          ],
        ),
      ),
    );
  }
}
  • 效果图:

引入图片

2、图片参数

const Image({
    super.key,
    required this.image,
    this.frameBuilder,
    this.loadingBuilder,
    this.errorBuilder,
    this.semanticLabel,
    this.excludeFromSemantics = false,
    this.width,
    this.height,
    this.color,
    this.opacity,
    this.colorBlendMode,
    this.fit,
    this.alignment = Alignment.center,
    this.repeat = ImageRepeat.noRepeat,
    this.centerSlice,
    this.matchTextDirection = false,
    this.gaplessPlayback = false,
    this.isAntiAlias = false,
    this.filterQuality = FilterQuality.medium,
  });
  • super.key:指定Image组件的标识,不指定自动生成一个标识符;
  • image:必选参数,它是一个ImageProvider对象,用于指定要显示的图片;
  • frameBuilder:在图片加载时显示一个自定义框架;
  • loadingBuilder:在图片加载时显示自定义加载指示器;
  • errorBuilder:在图片加载时显示一个自定义错误提示;
  • semanticLabel:为图片提供语义标签;
  • excludeFromSemantics:默认为false,设置为true图片将被排除在语义树之外,屏幕阅读器等辅助技术将不会读取它;
  • width:指定图片的宽;
  • height:指定图片的高;
  • color:用于给图片着色;
  • opacity:控制图片的透明度;
  • colorBlendMode:可选枚举值,指定颜色混合模式;
  • fit:可选枚举值。用于控制图片如何适应仪器,
    • fill:填充父容器所有空间;
    • cover:按照宽高比方法,超出部分会被裁掉;
    • contain:按照长宽自适应当前父容器大小;
    • fitWidth:缩放当前图片至显示空间的宽度,高度按比例缩放,然后居中显示;
    • fitHeight:缩放当前图片至显示空间的高度,宽度按比例缩放,然后居中显示;
    • none:没有适应,图片中间显示在控件内,超出部分会被剪裁。
  • alignment:可选对齐方式,默认为Alignment.center;
  • repeat:可选枚举值,指定图片是否重复显示,如何重复;
  • centerSlice:这是一个可选的Rect对象,指定如片中心切片区域,以便缩放时不会失真;
  • matchTextDirection:默认为false,设置为true时,方向取决于文本方向;
  • gaplessPlayback:默认为false,设置为true时,图片将在重新加载时无缝播放,不会出现闪烁;
  • isAntiAlias:默认为false,设置为true时,图片将使用抗锯齿基础,以减少边缘锯齿;
  • filterQuality:枚举值,默认为FilterQuality.medium,指定图片的过滤数量。
// 以fitshu'xing

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    home: MyHomePage(),
  ));
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key});

  
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text("图片控件"),
        ),
        body: const Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              SizedBox(
                height: 100.0,
                child: Image(
                  image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.fill,
                ),
              ),
              SizedBox(
                height: 100.0,
                child: Image(
                  image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.cover,
                ),
              ),
              SizedBox(
                height: 100.0,
                child: Image(
                  image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.contain,
                ),
              ),
              SizedBox(
                height: 100.0,
                child: Image(
                  image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.fitWidth,
                ),
              ),
              SizedBox(
                height: 100.0,
                child: Image(
                  image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.fitHeight,
                ),
              ),
              SizedBox(
                height: 100.0,
                child: Image(
                  image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.none,
                ),
              ),
            ],
          ),
        ));
  }
}
        image: AssetImage("assets/imgs/touxiang.jpg"),
                  fit: BoxFit.none,
                ),
              ),
            ],
          ),
        ));
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2225430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python:背景知识及环境安装

一、计算机的基础概念 1.1 什么是计算机? 最早我们有计算器,但是他只能完成算数运算的功能 而计算机能完成的工作有: (1)算术运算 (2)逻辑判断 (3)数据存储 &#xff08…

k8s 二进制部署安装(一)

目录 环境准备 初始化操作系统 部署docker 引擎 部署 etcd 集群 准备签发证书环境 部署 Master01 服务器相关组件 apiserver scheduler controller-manager.sh admin etcd 存储了 Kubernetes 集群的所有配置数据和状态信息,包括资源对象、集群配置、元数据…

基于SSM+小程序的旅游社交登录管理系统(旅游4)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 ​ 本旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理&a…

51单片机完全学习——DS18B20温度传感器

一、DS18B20数据手册解读 首先我们知道DS18B20使用的是单总线传输,默认情况下读出来的温度是12位的,我们这里只讨论外部电源供电这种情况。 有这张图片我们知道,12位温度的最小分辨率是10^-4次方,因此就是0.0625.我们只需要将最后…

论文阅读(二十三):Squeeze-and-Excitation Networks

文章目录 1.介绍2.原理3.代码4.SE模块的应用 论文:Squeeze-and-Excitation Networks   论文链接:Squeeze-and-Excitation Networks   代码链接:Github 1.介绍 卷积算子使网络能够在每一层的局部感受野中融合空间(spatial&…

内容安全与系统构建加速,助力解决生成式AI时代的双重挑战

内容安全与系统构建加速,助力解决生成式AI时代的双重挑战 0. 前言1. PRCV 20241.1 大会简介1.2 生成式 Al 时代的内容安全与系统构建加速 2. 生成式 AI2.1 生成模型2.2 生成模型与判别模型的区别2.3 生成模型的发展 3. GAI 内容安全3.1 GAI 时代内容安全挑战3.2 图像…

Linux 进程间通信_匿名管道

1.程间通信目的 : 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如…

Linux CentOS7下创建SFTP服务器

本文详细介绍了在Linux CentOS上部署安全文件传输协议(SFTP)服务器的全过程。SFTP基于SSH(安全壳层协议)提供文件传输服务,继承了SSH的安全特性,如数据加密、完整性验证和服务器认证等,确保数据…

信号与系统学习:周期信号的频谱

一、概念 1. 什么是频谱? 频谱描述了信号在不同频率上的能量分布对于一个周期信号,其频谱通常是离散的,由一系列离散的频率成分组成 2. 周期信号与傅里叶级数 周期信号可以用傅里叶级数展开,表示为无数个正弦和余弦&#xff0…

巡飞单机多旋翼无人机技术详解

巡飞单机多旋翼无人机技术是一种集成了多种先进技术的无人机系统,它具备自主飞行、长续航、高精度控制以及多任务负载能力等特点。以下是对巡飞单机多旋翼无人机技术的详细解析: 一、机架与结构设计 1.材料选择:为了确保无人机能够承载足够…

基于深度学习的图像修复系统设计与实现(PyQt5、CodeFormer ffhq-dataset数据集)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

logback日志导入使用

1导入配置 <!-- 日志 &#xff0c; 会自动传递slf4j门面--> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version> </dependency>2 引入配置 Logback要求…

Synergy遇见的问题

1.两台设备无法ping通 首先两个设备是在同一个局域网中&#xff0c;但任然是无法ping通 问题所在&#xff1a;防火墙进行了隔离&#xff1b; 解决方法&#xff1a; &#xff08;1&#xff09;关闭防火墙 没有用过&#xff0c;个人感觉不怎么安全就没有使用&#xff1b; &am…

react18中的受控与非受控组件及ref的使用

受控与非受控组件 受控组件,基于修改 state 的值,修改组件内部的状态&#xff0c;来实现页面的更新&#xff0c;推荐使用 非受控组件&#xff0c;基于 ref 获取 dom 的值&#xff0c;来实现页面的更新,不推荐使用,偶尔特殊的场景会使用 给需要获取的元素设置 ref“xxx”,后期基…

一步一步从微信小程序获取asp.net Core API的数据

前面我们说过&#xff0c;如何使用微信小程序获取asp.net的数据&#xff0c;这里我们继续介绍如何获取asp.net core api的数据。两者之间还是有一些差别的。本篇博文旨在详细介绍如何一步一步从微信小程序获取asp.net Core API的数据。 文章目录 一、建立并了解asp.net core we…

Git 创建SSH秘钥

1、命令行输入 ssh-keygen -t rsa -b 4096 2、系统提示你“Enter a file in which to save the key”&#xff0c;直接按回车键 3、再提示你输入密码的时候直接按回车键&#xff0c;创建没有密码的SSH密钥 4、密钥对创建后&#xff0c;可以在自己电脑对应的 ~/.ssh 目录下找到…

vue 果蔬识别系统百度AI识别vue+springboot java开发、elementui+ echarts+ vant开发

编号&#xff1a;R03-果蔬识别系统 简介&#xff1a;vuespringboot百度AI实现的果蔬识别系统 版本&#xff1a;2025版 视频介绍&#xff1a; vuespringboot百度AI实现的果蔬识别系统前后端java开发&#xff0c;百度识别&#xff0c;带H5移动端&#xff0c;mysql数据库可视化 1 …

Unity编辑器制作多级下拉菜单

Unity编辑器下拉菜单 大家好&#xff0c;我是阿赵。   在Unity引擎里面编写工具插件&#xff0c;有时候会用到一些特殊的菜单形式&#xff0c;比如下拉选项。 通过下拉菜单&#xff0c;给用户选择不同的选项。   如果只是一层的下拉列表&#xff0c;可以用EditorGUILayout.…

西南大学软件专硕考研难度分析!

C哥专业提供——计软考研院校选择分析专业课备考指南规划 西南大学软件工程学硕近三年呈现出招生规模稳定、复试线稳中有升的特点。2024届实际录取8人&#xff0c;复试分数线305分&#xff0c;复试录取率67%&#xff0c;相比去年复试线略有下降但仍高于2022届&#xff0c;显示出…

Maven 项目构建打包,如何引入本地 Jar 包?

上一篇讲到 Maven 离线仓库的使用&#xff0c;反响不错很多人收藏&#xff0c;这一篇还是继续聊 Maven 。假如你发现某开源项目有个 bug 影响到自己的系统&#xff0c;但官方还没修复&#xff0c;自己定位到了本地修改打了包先应急用&#xff0c;那么如何在其他项目上使用该包&…