flutter开发实战-css的linear-gradient的值转换成LinearGradient

flutter开发实战-css的linear-gradient的值转换成LinearGradient

在开发中遇到了参照前端的css的属性值,需要将css的linear-gradient值转换成LinearGradient,这样可以直接设置相应的值。这里暂时不涉及到,颜色值名称、color-stop1,后续把包含color-stop1用于指定渐变的起止颜色的属性转换、正则表达式转换等也相应的整理一下。这里的颜色为#ffffff格式的。

下面将linear-gradient(179deg,#eab6ea,#978bfb)转换成flutter的LinearGradient类对象。

我们先了解一下css的linear-gradient

一、css之linear-gradient

linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片。
创建一个线性渐变,需要指定两种颜色,还可以实现不同方向(指定为一个角度)的渐变效果,如果不指定方向,默认从上到下渐变。

/* 从上到下,蓝色渐变到红色 */
linear-gradient(blue, red);/* 渐变轴为45度,从蓝色渐变到红色 */
linear-gradient(45deg, blue, red);/* 从右下到左上、从蓝色渐变到红色 */
linear-gradient(to left top, blue, red);/* 从下到上,从蓝色开始渐变、到高度40%位置是绿色渐变开始、最后以红色结束 */
linear-gradient(0deg, blue, green 40%, red);

background-image: linear-gradient(direction, color-stop1, color-stop2, …);

direction:用角度值指定渐变的方向(或角度)。
color-stop1, color-stop2,…:用于指定渐变的起止颜色。

linear-gradient(179deg,#eab6ea,#978bfb)
css效果图

在这里插入图片描述

二、flutter之LinearGradient

LinearGradient一个用于创建线性渐变颜色装饰,它能够根据给定的起点和终点,在这个线性渐变的方向上,使用给定的颜色进行过渡,所以LinearGradient实现的过渡是平滑的。

针对于linear-gradient(179deg,#eab6ea,#978bfb)转换成flutter的LinearGradient

如果css的linear-gradient存在角度需要将flutter的LinearGradient中begin设置成Alignment.bottomCenter,end设置为Alignment.topCenter;

// 和css角度,方向保持一致
Alignment  begin = Alignment.bottomCenter;
Alignment  end = Alignment.topCenter;

之后通过计算一下角度设置transform。

GradientRotation? transform;// 角度// 计算角度double degree = 179;double p = 180.0;double radians = (math.pi / p) * degree;transform = GradientRotation(radians);

完成代码代码如下

LinearGradient linearGradient(BuildContext context) {Alignment begin = Alignment.centerLeft;Alignment end = Alignment.centerRight;GradientRotation? transform;// 角度// 计算角度double degree = 179;double p = 180.0;double radians = (math.pi / p) * degree;transform = GradientRotation(radians);// 和css角度,方向保持一致begin = Alignment.bottomCenter;end = Alignment.topCenter;LinearGradient linearGradient = LinearGradient(colors: [ColorUtil.hexColor(0xeab6ea),ColorUtil.hexColor(0x978bfb),],begin: begin,end: end,transform: transform,);return linearGradient;
}

转换成flutter的linearGradient效果图

在这里插入图片描述

三、小结

flutter开发实战-css的linear-gradient的值转换成LinearGradient。将css的linear-gradient值转换成LinearGradient,可以方便参考页面的检查中css元素设置改成LinearGradient使用的属性值。这里暂时不涉及到,颜色值名称、color-stop1,后续把包含color-stop1用于指定渐变的起止颜色的属性转换、正则表达式转换等也相应的整理一下。

学习记录,每天不停进步。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕设 大数据房价数据分析及可视化 - python 房价分析

文章目录 1 课题背景2 数据爬取2.1 爬虫简介2.2 房价爬取 3 数据可视化分析3.1 ECharts3.2 相关可视化图表 4 最后 1 课题背景 房地产是促进我国经济持续增长的基础性、主导性产业。如何了解一个城市的房价的区域分布,或者不同的城市房价的区域差异。如何获取一个城…

前端各种方法自我整理

Javascript方法 slice [slaɪs]切片 slice (-2)取出数组中倒数两个植变生成一个新数组 slice(0,3)取出数组下标0到下标3的值,生成新数组 注意:slice不会改变数组的长度 includes [ɪnˈkluːdz]包含 查看数组或字符串内是否有该值&…

MySQL的下载、安装和配置(图文详解)

目录 一、MySQL的4大版本 二、软件的下载 1. 下载地址 2. 打开官网,点击DOWNLOADS 3. 点击 MySQL Community Server 三、MySQL8.0 版本的安装 四、配置MySQL8.0 五、配置MySQL8.0 环境变量 六、MySQL5.7 版本的安装、配置 一、MySQL的4大版本 MySQL Commu…

【C++】红黑树

目录 1、红黑树的概念2、红黑树的性质及定义3、红黑树的插入操作 1、红黑树的概念 红黑树是一种二叉搜索树,但在每个节点上增加一个存储位表示节点的颜色,可以是red或black。通过对任何一条从根到叶子的路径上各个节点着色方式的限制,红黑树…

基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Nginx】proxy_set_header的变量与X-Forwarded-For伪造客户端IP漏洞

前言 上面突然说,需要检查Nginx反向代理的安全问题并给出了修改方法,小白的我一脸懵逼,明明都是中文,连在一起咋就看不明白了。于是乎,对着修改内容简单学习了一下,在此做个记录,如有问题请大佬…

【USRP X410】LabVIEW参考架构软件,用于使用Ettus USRP X410对无线系统进行原型验证

LabVIEW参考架构软件,用于使用Ettus USRP X410对无线系统进行原型验证 设备 1 MHz to 7.2 GHz,400 MHz带宽,GPS驯服OCXO,USRP软件无线电设备 - Ettus USRP X410集成硬件和软件,可帮助您制作高性能无线系统的原型&…

WAS 9.0 ND 命令行安装-基于LINUX 8

WAS 9.0 安装文件准备如下: gtk.x86_64_1.8.9004.20190423_2015.zip ----IM安装源文件 sdk.repo.8035.java8.linux.zip ----JAVA安装源文件 was.repo.90501.nd.zip ----WAS安装源文件 …

Maven详见及在Idea中的使用方法[保姆级包学包会]

文章目录 Maven详解1.1 目标1.2 Maven概括1.3 多模块开发1.3.1 pom.xml1.3.2 生命周期1.3.3 依赖特性(多模块1)1.3.4 继承特性(多模块2)1.3.5 dependencyManagement标签1.3.6 Maven-聚合(多模块3)聚合 1.3.6.1聚合总结 Maven详解 1.1 目标 maven是什么?maven能干什么?maven…

机器视觉初步13:3D相机介绍

文章目录 1. 结构光(Structured Light)2. 飞行时间(Time of Flight,ToF)3. 双目视觉(Stereo Vision)4. 线扫描(Line Scan)5. 散斑(Speckle) 在工业…

ROS安装注意事项

输入roscore报错:"roscore" not found 输入 sudo apt install ros-​melodi​c-roslaunch​

深度卷积网络的实际应用

目录 1、三种经典的深度卷积网络 1.1、LeNet-5 1.2、AlexNet 1.3、VGG 2、残差网络 3、Inception 网络(Inception network) 4、迁移学习 5、数据增强 1、三种经典的深度卷积网络 1.1、LeNet-5 使用 sigmoid 函数和 tanh 函数,而不是…