第一百七十四回 如何创建扇形渐变背景

news2024/11/24 19:47:48

文章目录

  • 1. 概念介绍
  • 2. 实现方法
  • 3. 代码与效果
    • 3.1 示例代码
    • 3.2 运行效果
  • 4. 内容总结

我们在 上一章回中介绍了"如何创建线性渐变背景"相关的内容,本章回中将介绍" 如何创建扇形渐变背景"。闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在本章回中介绍的扇形渐变背景是指整个页面或者部分页面为渐变色,渐变色呈扇子形状排列。这么介绍可能比较抽象,大家可以先观看后面小节中的程序运行效果图,从图中可以直观地看到扇形渐变背景真实的效果。本章回中将详细介绍如何创建扇形渐变背景。

2. 实现方法

创建渐变色需要使用BoxDecoration组件,该组件的gradient属性主要用来控制渐变效果,我们只需要把渐变色赋值给gradient属性就可以。

如何创建渐变色呢?这时需要使用SweepGradient组件,该组件提供了相关的属性来控制渐变色的效果。下面是该组件中常用的属性:

  • colors属性:该属性用来存放渐变效果中使用的颜色,它可存放多个颜色;
  • center属性:该属性用来控制渐变的中心位置;
  • startAngle属性:该属性用来控制渐变色的起始角度;
  • endAngle属性:该属性用来控制渐变色的结束角度;
  • tileMode:该用来用来控制渐变方式;

上面介绍的这些属性中,第一个属性是必选属性,其它属性都是可选属性。这些属性主要用来控制渐变的方式,进而实现不同的渐变效果。

另外在设置开始和结束角度时传递的是弧度值,因此需要结合pi来计算,这点需要特别注意一下。

渐变色创建后还需要把它放到背景中,我们使用Container组件来存当背景,该组件提供了decoration属性来控制背景效果,把刚才创建的背景色赋值给该属性就可以。

至此,带有扇形渐变色的背景就创建好了。稍后,我们将通过示例代码来演示具体的实现方法。

3. 代码与效果

3.1 示例代码

///扇形渐变
Container(
  width: double.infinity,
  height: 100,
  decoration:const BoxDecoration(
      gradient: SweepGradient(
        colors: [Colors.greenAccent,Colors.redAccent,Colors.amberAccent]
      )
  ),
  child: const SizedBox.shrink(),
),

const Spacer(),
Container(
  width: double.infinity,
  height: 100,
  decoration:const BoxDecoration(
      gradient: SweepGradient(
        center: Alignment.center,
        ///设置开始和结的角度
        startAngle: math.pi/2,
        endAngle: math.pi ,
        tileMode: TileMode.repeated,
        colors: [Colors.greenAccent,Colors.redAccent,Colors.amberAccent]
      )
  ),
  child: const SizedBox.shrink(),
),

上面的示例代码中添加了相关的注释,这样方便大家理解代码。示例代码创建了两个渐变色背景,一个是默认的扇形渐变色背景,另外一个是修改了渐变方式的扇形渐变色背景。此外,背景的大小可以通过Container组件的width和height属性来控制。

3.2 运行效果

编译并且运行上面的示例代码可以得到下面的运行效果图。

在这里插入图片描述

图中上方的图形是默认的扇形渐变色背景效果,下方的图形是修改了渐变方式的扇形渐变色背景效果。强烈建议大家自己动手去实践,通过修改SweepGradient组件的属性可以创建出不同的扇形渐变效果。

4. 内容总结

最后,我们本章回的内容做一个全面的总结:

  • 创建渐变色需要使用BoxDecoration组件和SweepGradient组件;
  • SweepGradient组件提供了多种属性来控制渐变效果;
  • 使用Container组件可以充当渐变色的背景;
  • 把渐变色和背景组合在一下就形成了渐变色背景;

看官们,与"如何创建扇形渐变背景"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

打开GeoTIFF文件失败:Unknown field with tag

用QGIS输出的数据类型为UInt16的TIFF文件,无法在GIMP中打开。 GIMP消息提示: 调查 用ImageMagick打开TIFF文件,虽然会出现警告,但是最终还是打开了: 在ImageMagick中重新保存后,就可以用GIMP打开了。使用…

Mapstruct 搭配MP分页食用 - 参考自ballcat项目

参考自 ballcat 一键抵达: Gitee GitHub 场景 使用MyBatis Plus的selectPage方法进行分页查询之后,如果需要将Entity对象转换为Vo对象,需要从Page对象中取出集合列表,手动转换成Vo集合列表数据重新放进Page对象中。 取出集合 设置…

使用postman测试

第一步: 第二步: 第三步:添加请求 第四步:填写请求 代码实现自动关联的位置: 为相关联的接口设置环境: 使用设置的环境变量: 参数化实现测试:测试脚本中仅测试数据不一样&#xff…

[答疑]改善系统的性能,用得着业务建模吗

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 第五元素 2023-10-27 22:02 潘老师,请教一个实践中遇到的问题: 假设生产人员使用某个工具处理数据,需要10天时间;现在改进了这个工具…

Java排序算法之堆排序

图解 堆排序是一种常见的排序算法,它借助了堆这种数据结构。堆是一种完全二叉树,它可以分为两种类型:最大堆和最小堆。在最大堆中,每个结点的值都大于等于它的子结点的值,而在最小堆中,每个结点的值都小于等…

SpringSecurity6从入门到上天系列第六篇:解决这个问题为什么在引入SpringSecurity之后所有的请求都需要先做登录认证才可以进行访问呢

文章目录 问题引入 1:问题阐述 2:问题分析 一:从SpringBoot的自动装配 1:SpringBootApplication介绍 2:自动装配的核心方法 3:核心方法的调用路径 4:SpringSecurity核心配置 5&#xf…

PMP备考短期极限上岸攻略!

作为一位通过PMP考试成功上岸的3A人士,下面的文章包含了所有PMP考试的实用知识,是一本适合初学者的PMP备考攻略手册。如果你有意向了解或者报考PMP考试,这篇文章肯定会对你有很大的帮助! 对于新手第一个需要知道的就是PMP是什么&…

【python】—— 控制语句和组合数据类型(其一)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

Flume(一)【Flume 概述】

前言 今天实在不知道学点什么好了,早上学了3个多小时的 Flink ,整天只学一门技术是很容易丧失兴趣的。那就学点新的东西 Flume,虽然 Kafka 还没学完,但是大数据生态圈的基础组件也基本就剩这倆了。 Flume 概述 生产环境中的数据一…

Sql Prompt 10下载安装图文教程

在操作过程中,请暂时关闭你的防病毒软件,以免其误报导致操作失败。 资源 SQL Prompt 10 https://www.aliyundrive.com/s/QuMWkvE1Sv6 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看&…

20 - 欲知JVM调优先了解JVM内存模型

从今天开始,我将和你一起探讨 Java 虚拟机(JVM)的性能调优。JVM 算是面试中的高频问题了,通常情况下总会有人问到:请你讲解下 JVM 的内存模型,JVM 的性能调优做过吗? 1、为什么 JVM 在 Java 中…

Qt高级--(2)自定义标题栏

自定义标题栏 功能点 1.标题栏中最外层布局器使用水平布局器。 2.导航按钮、工具按钮和窗口功能按钮都是用水平布局器,边距和间隔可根据实际情况设置。 3.编写 QSS 样式,并将样式设置到窗口控件中。 4.实现最小化、最大化和关闭窗口按钮功能。 5.实现鼠…

mysql数据库,sql语句中连接查询,连表查询,内连接,外连接,左外连接,右外连接,inner join、left join、right join,全连接

连表查询 现有多张表:员工表 emp(员工编号、姓名、工资、部门号、经理编号)、部门表 dept(部门号、部门名称、部门位置)、工资等级表 salgrade(等级、工资下限、工资上限) 连接查询:…

ClassLoader

Java /Android 默认ClassLoader是PathClassLoader Android 的 PathClassLoader 和DexClassLoader 都是BaseDexClassLoader的子类 BaseClassLoader是ClassLoader的子类,通过loadClass方法加载,Android将Java的ClassLoader简化了,第二个参数arg2 无效 loadClass 通过 findLoad…

搭建知识付费系统的最佳实践是什么

在数字化时代,搭建一个高效且用户友好的知识付费系统是许多创业者和内容创作者追求的目标。本文将介绍一些搭建知识付费系统的最佳实践,同时提供一些基本的技术代码示例,以帮助你快速入门。 1. 选择合适的技术栈: 搭建知识付费…

YOLO目标检测——烟叶病害检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:烟叶病虫害防治数据集说明:烟叶病害检测数据集,真实场景的高质量图片数据,数据场景丰富,类别分为:轻度病虫、中度病虫、高度病虫标签说明:使用lableimg标注软件标注,标…

微信群BUG大揭秘!开启身份切换神器

前言 最近微信群里出现了一个神秘的BUG,普通群成员竟然可以艾特全体成员。今天,就让我们一起揭秘这个令人震惊的微信群普通成员可全体成员的BUG 复现步骤 复现步骤也很简单,前提条件就是要在PC客户端操作!首先得有个属于自己的群…

OCR文字识别标注小助手

目录 背景 工具界面 操作 1、选择目录 2、更改为正确的信息 3、保存 4、说明 项目 代码 下载 背景 为什么要写这么一个小工具呢?因为要对文字进行标注。 为什么对文字进行标注呢?因为要重新训练识别。 为什么要重新训练识别呢?因…

python socket编程2 - socket创建发送方所需参数的获得

使用socket进行进程间通信或者跨网络的计算机间通讯,有点类似日常生活中的发送快递。 根据发送方的需要,选择不同的物流公司: 在选择适合的公司和运输方式后,需要在app上做出选择,并根据要求填写一些信息。app会根据…

根据视频编码时间批量重命名视频文件

整理收藏的小视频的时候发现很多视频命名很随意,自己命名又太麻烦,看着乱糟糟的文件又心烦,所有写了这个程序,代码如下: import osfrom filetype import filetype from pymediainfo import MediaInfovideo_extension …