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

文章目录

  • 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组件可以充当渐变色的背景;
  • 把渐变色和背景组合在一下就形成了渐变色背景;

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 如何实现适配器设计模式?什么是适配器(Adapter)设计模式?

什么是适配器设计模式? 适配器(Adapter)设计模式是一种结构型设计模式,它允许接口不兼容的类之间进行合作。适配器模式充当两个不兼容接口之间的桥梁,使得它们可以一起工作,而无需修改它们的源代码。 主要…

CTFhub-RCE-过滤空格

1. 查看当前目录&#xff1a;127.0.0.1|ls 2. 查看 flag_890277429145.php 127.0.0.1|cat flag_890277429145.php 根据题目可以知道空格被过滤掉了 3.空格可以用以下字符代替&#xff1a; < 、>、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 $IFS在li…

03.智慧商城——封装请求模块、登录静态页面、图形验证码

01. 登录页静态布局 (1) 准备工作 新建 styles/common.less 重置默认样式 // 重置默认样式 * {margin: 0;padding: 0;box-sizing: border-box; }// 文字溢出省略号 .text-ellipsis-2 {overflow: hidden;-webkit-line-clamp: 2;text-overflow: ellipsis;display: -webkit-box…

C++标准模板(STL)- 类型支持 (属性查询,获取类型的对齐要求)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

本地视频AI人脸替换,一键启动,傻瓜式操作

本地无须准备配置和运行环镜&#xff0c;整个压缩包下载后解压&#xff0c;一键启动程序&#xff0c;只需一张照片和一个视频&#xff0c;就可以把视频中的人物替换成您想要的人脸。支持CPU和GPU解码&#xff0c;使用GPU解码速度较快。 所有使用的软件安装包已上传网盘&#x…

Ubuntu 20.04 调整交换分区大小

Ubuntu 调整交换分区大小 一、系统情况二、去除旧的交换分区文件三、配置并启用交换分区四、查看swap文件大小 一、系统情况 Ubuntu &#xff1a;Ubuntu 20.04.6 LTS 交换分区位置&#xff1a; cat /proc/swaps二、去除旧的交换分区文件 去掉旧的交换分区有两个步骤&#x…

【excel技巧】Excel表格里的图片如何批量调整大小?

Excel表格里面插入了很多图片&#xff0c;但是每张图片大小不一&#xff0c;如何做到每张图片都完美的与单元格大小相同&#xff1f;并且能够根据单元格来改变大小&#xff1f;今天分享&#xff0c;excel表格里的图片如何批量调整大小。 方法如下&#xff1a; 点击表格中的一…

DBA_IND_STATISTICS 字段含义

功能 展示数据库中所有索引的优化器统计信息。 字段说明 参考&#xff1a;https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000885743

贝加莱软件功能测试

通讯及稳定性测试 Profibus DP通讯、Modbus通讯、CANOPEN通讯测试 C1 C2 C3 测试目的 测试验证贝加莱控制系统各种现场总线通讯的性能及稳定性。验收标准 主站PLC可与现有总线仪表建立Profibus DP通讯、Modbus通讯或CANOPEN通讯&#xff0c;连续运行&#xff08;通讯状态应保…

万能自定义表单系统源码 支持收费表单+在线支付+活动报名 带前后端完整部署教程

随着互联网的快速发展&#xff0c;各种在线表单系统已经成为了许多企业和个人的必备工具。这些表单系统可以帮助用户收集信息、管理数据、进行在线支付等操作。然而&#xff0c;现有的表单系统往往不能满足所有用户的需求&#xff0c;所以这款万能自定义表单系统源码应用而生。…

内衣洗衣机和手洗哪个干净?迷你洗衣机品牌推荐

很多人会觉得内衣洗衣机是智商税&#xff0c;洗个内衣只需要两分钟的事情&#xff0c;需要花个几百块钱去入手一个洗衣机吗&#xff1f;然而清洗贴身衣物的并不是一件简单的事情&#xff0c;如果只是简单的搓洗&#xff0c;内裤上看不见的细菌也无法消除&#xff0c;而且对来生…

【ROS导航Navigation】五 | 导航相关的消息 | 地图 | 里程计 | 坐标变换 | 定位 | 目标点和路径规划 | 激光雷达 | 相机

致谢&#xff1a;ROS赵虚左老师 Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 参考赵虚左老师的实战教程 一、地图 nav_msgs/MapMetaData 地图元数据&#xff0c;包括地图的宽度、高度、分辨率等。 nav_msgs/OccupancyGrid 地图栅格数据&#…

Outlook搜索功能灰色

Outlook搜索功能灰色 故障现象&#xff1a; Outlook搜索邮件功能突然灰色&#xff0c;无法搜索邮件&#xff0c;搜索栏直接搜索的结果不准确&#xff0c;并提示服务被禁用。 故障截图&#xff1a; 故障原因&#xff1a; Windows search服务被禁用导致&#xff0c;需要重新开…

人工智能为游戏带来提升

人工智能为游戏带来提升 1提升游戏体验 提高吸引力 ​ 游戏中的****NPC 首先&#xff0c;出现和玩家相同水平&#xff08;甚至超越人类的&#xff09;的电脑玩家就已经足够吸引人了&#xff0c;尤其是一些游戏中如果可以产生一个和人类更加相似的NPC&#xff0c;无疑可以让玩…

论文阅读——RetNet

transformer的问题&#xff1a;计算量大&#xff0c;占用内存大&#xff0c;不好部署。 所以大家在找能解决办法&#xff0c;既能和transformer表现一样好&#xff0c;又能在推理阶段计算复杂度很低。 这些方法大概分类三类&#xff1a;一是代替transformer非线性注意力机制的…

MVMD(多元变分模态分解)

代码使用方法 多元变分模态分解 代码原理 多元变分模态分解(Multivariate Variational Mode Decomposition, MVMD)是一种信号分解方法&#xff0c;用于从多元时间序列数据中提取模态成分。 传统的变分模态分解(Variational Mode Decomposition, VMD)是一种基于优化方法的信号…

【税收相关】企业所得税值税、消费税、企业所得税、个人所得税、资源税、城市维护建设税、房产税、印花税、城镇土地使用税、土地增值税

【点我-这里送书】 本人详解 作者&#xff1a;王文峰&#xff0c;参加过 CSDN 2020年度博客之星&#xff0c;《Java王大师王天师》 公众号&#xff1a;JAVA开发王大师&#xff0c;专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生&#xff0c;期待你的…

3.1 Windows驱动开发:内核远程堆分配与销毁

在开始学习内核内存读写篇之前&#xff0c;我们先来实现一个简单的内存分配销毁堆的功能&#xff0c;在内核空间内用户依然可以动态的申请与销毁一段可控的堆空间&#xff0c;一般而言内核中提供了ZwAllocateVirtualMemory这个函数用于专门分配虚拟空间&#xff0c;而与之相对应…

Mac电脑好用的窗口管理软件 Magnet 中文for mac

Magnet是一款用于Mac操作系统的窗口管理工具&#xff0c;它可以帮助您快速和方便地组织和管理应用程序窗口&#xff0c;以提高您的工作效率和多任务处理能力。 以下是Magnet的一些主要功能和特点&#xff1a; 窗口自动调整&#xff1a;Magnet允许您通过简单的拖放操作或使用快…

计算机毕业设计选题推荐-一周穿搭推荐微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…