当前位置: 首页 > 编程日记 > 正文

转:Flutter Decoration背景设定(边框、圆角、阴影、形状、渐变、背景图像等)...

1 继续关系:


BoxDecoration:实现边框、圆角、阴影、形状、渐变、背景图像

ShapeDecoration:实现四个边分别指定颜色和宽度、底部线、矩形边色、圆形边色、体育场(竖向椭圆)、 角形(八边角)边色

FlutterLogoDecoration:实现Flutter图片

UnderlineTabindicator:下划线

2 介绍
一个背景装饰对象,相当于Android中的shape.xml,定制各种各样的背景(边框、圆角、阴影、形状、渐变、背景图像)。

3 BoxDecoration例子:
构造方法:

const BoxDecoration({
this.color, // 底色
this.image, // 图片
this.border, 边色
this.borderRadius, // 圆角度
this.boxShadow, // 阴影
this.gradient, // 渐变
this.backgroundBlendMode, // 混合Mode
this.shape = BoxShape.rectangle, // 形状
})
3.1 边框+圆角:
decoration: new BoxDecoration(
border: new Border.all(color: Color(0xFFFF0000), width: 0.5), // 边色与边宽度
color: Color(0xFF9E9E9E), // 底色
// borderRadius: new BorderRadius.circular((20.0)), // 圆角度
borderRadius: new BorderRadius.vertical(top: Radius.elliptical(20, 50)), // 也可控件一边圆角大小
),
3.2 阴影:
decoration: new BoxDecoration(
border: new Border.all(color: Color(0xFFFF0000), width: 0.5), // 边色与边宽度
// 生成俩层阴影,一层绿,一层黄, 阴影位置由offset决定,阴影模糊层度由blurRadius大小决定(大就更透明更扩散),阴影模糊大小由spreadRadius决定
boxShadow: [BoxShadow(color: Color(0x99FFFF00), offset: Offset(5.0, 5.0), blurRadius: 10.0, spreadRadius: 2.0), BoxShadow(color: Color(0x9900FF00), offset: Offset(1.0, 1.0)), BoxShadow(color: Color(0xFF0000FF))],
),
3.3 形状(圆形与矩形):
decoration: new BoxDecoration(
border: new Border.all(color: Color(0xFFFFFF00), width: 0.5), // 边色与边宽度
color: Color(0xFF9E9E9E), // 底色
// shape: BoxShape.circle, // 圆形,使用圆形时不可以使用borderRadius
shape: BoxShape.rectangle, // 默认值也是矩形
borderRadius: new BorderRadius.circular((20.0)), // 圆角度
),
3.4 渐变(环形、扫描式、线性):
decoration: new BoxDecoration(
border: new Border.all(color: Color(0xFFFFFF00), width: 0.5), // 边色与边宽度
// 环形渲染
gradient: RadialGradient(colors: [Color(0xFFFFFF00), Color(0xFF00FF00), Color(0xFF00FFFF)],radius: 1, tileMode: TileMode.mirror)
//扫描式渐变
// gradient: SweepGradient(colors: [Color(0xFFFFFF00), Color(0xFF00FF00), Color(0xFF00FFFF)], startAngle: 0.0, endAngle: 1*3.14)
// 线性渐变
// gradient: LinearGradient(colors: [Color(0xFFFFFF00), Color(0xFF00FF00), Color(0xFF00FFFF)], begin: FractionalOffset(1, 0), end: FractionalOffset(0, 1))
),
3.4 背景图像:
decoration: new BoxDecoration(
border: new Border.all(color: Color(0xFFFFFF00), width: 0.5), // 边色与边宽度
image: new DecorationImage(
image: new NetworkImage('https://avatar.csdn.net/8/9/A/3_chenlove1.jpg'), // 网络图片
// image: new AssetImage('graphics/background.png'), 本地图片
fit: BoxFit.fill // 填满
// centerSlice: new Rect.fromLTRB(270.0, 180.0, 1360.0, 730.0),// 固定大小
),
),
4 ShapeDecoration例子:
构造方法:

const ShapeDecoration({
this.color,
this.image,
this.gradient,
this.shadows,
@required this.shape,
})
除了shape,其他与BoxDecoration一致,shape研究:

decoration: new ShapeDecoration(
color: Color(0xFFFF00FF), // 底色
// 统一四边颜色和宽度
shape: Border.all(color: Color(0xFF00FFFF),style: BorderStyle.solid,width: 2)
// 四个边分别指定颜色和宽度, 当只给bottom时与UnderlineInputBorder一致效果
// shape: Border(top: b, bottom: b, right: b, left: b)
// 底部线
// shape: UnderlineInputBorder( borderSide:BorderSide(color: Color(0xFFFFFFFF), style: BorderStyle.solid, width: 2))
// 矩形边色
// shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10)), side: BorderSide(color: Color(0xFFFFFFFF), style: BorderStyle.solid, width: 2))
// 圆形边色
// shape: CircleBorder(side: BorderSide(color: Color(0xFFFFFF00), style: BorderStyle.solid, width: 2))
// 体育场(竖向椭圆)
// shape: StadiumBorder(side: BorderSide(width: 2, style: BorderStyle.solid, color: Color(0xFF00FFFF))
// 角形(八边角)边色
// shape: BeveledRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10)), side: BorderSide(color: Color(0xFFFFFFFF), style: BorderStyle.solid, width: 2))
),
5 FlutterLogoDecoration例子:
构造方法:

const FlutterLogoDecoration({
this.lightColor = const Color(0xFF42A5F5), // Colors.blue[400]
this.darkColor = const Color(0xFF0D47A1), // Colors.blue[900]
this.textColor = const Color(0xFF616161),
this.style = FlutterLogoStyle.markOnly,
this.margin = EdgeInsets.zero,
})
这个就不解析了,Flutter的logo,开发没啥用!

6 UnderlineTabindicator例子:
构造方法:

const UnderlineTabIndicator({
this.borderSide = const BorderSide(width: 2.0, color: Colors.white),
this.insets = EdgeInsets.zero,
})
这个比较简单就是加下划线,可以设置Insets值(控制下划高底,左右边距)

decoration: new UnderlineTabIndicator(
borderSide: BorderSide(width: 2.0, color: Colors.white),
insets: EdgeInsets.fromLTRB(0,0,0,10)
)

原文:https://blog.csdn.net/chenlove1/article/details/83627831

转载于:https://www.cnblogs.com/ckAng/p/10647160.html

相关文章:

Angular7中引用外部JS文件

Angular7中引用外部JS文件,步骤如下: 1. 将引入的js文件放到项目的src/assets下 2. 在angular.json文件中找到scripts项并配置js文件的相对路径 3. 在src/typings.d.ts文件中声明全局变量,如果不想声明全局变量,也可以在所需的组…

当前上下文中不存在viewbag

参考链接&#xff1a;http://www.cnblogs.com/chas/p/5076297.html view文件夹下的web.config中的appsetting节点中缺少了 <add key"webpages:version" value"3.0.0.0"/>&#xff0c;增加上去就行了&#xff0c;同时注意value要去系统中的版本保持一…

WPF:跨应用程序会话保持和还原应用程序范围的属性

所谓的wpf夸应用程序员会话保持和还原。其实就是将多个应用程序都用的资源保存到一个独立的文件存储系统中。这个应用程序退出的时候将数据写入文件中&#xff0c;其他应用程序使用的时候可以去读取这个文件这个地方用到了System.IO.IsolatedStorage。这个方法只是为了避免读写…

AD下批量导入域用户

如果您的域环境比较大,那么设置用户可能会不方便,就"新建用户"都可能重复做上几十遍....是不是很.....呵呵...下面介绍一个工具"csvde.exe",微软默认提供的.即默认随DC一起安装的,专门用来从"文本文件"批量导入"用户"的工具.几步就搞定…

测试 csdnmakerdown语法

TOC 欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#…

Android studio快捷键

查看类的继承关系&#xff1a; CtrlH 自动补全抽象类型&#xff1a;AltEnter JAVA中注释掉//&#xff1a; Ctrl/ XML中注释掉&#xff1a; Ctlr/ 显示注释文档&#xff1a; CtrlQ 修改文件名&#xff1a; 点到需要修改的文件然后shiftF6 转载于:https://www.cnbl…

异步方法顺序调用问题

前端应用中时常出现多个异步方法需要依次调用&#xff0c;且后一个异步方法的执行依赖于前一个异步方法的返回结果的情况&#xff0c;下面主要介绍一下这种情况的处理方法。 方法1&#xff1a;异步方法嵌套调用 此种方法逻辑简单&#xff0c;但代码较为繁琐。 方法2&#xff1…

(转载)从无知到有知

这篇文章的作者是徐宥&#xff0c;觉得很有共鸣&#xff0c;好东西大家分享一下 February 3, 2010 at 11:07 pm Filed under Article, Memo, Self-help [这篇文章是以前写的&#xff0c;主要是提醒自己的] 人的一生是要不断学习的。这里面的动力很简单&#xff1a;因为我们在…

Cisco *** 完全配置指南-连载-PIX和ASA连接的故障诊断与排除

Cisco *** 完全配置指南-连载-PIX和ASA连接的故障诊断与排除一、ISAKMP/IKE阶段1连接<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />show isakmp sa [detail]显示任何管理连接的状态show [crypto] isakmp stats 显示管理连接的…

Angular应用开发中遇到的问题

记录在开发Angular应用时遇到的问题以及解决方案。 问题 3 前提&#xff1a;在Angular应用的组件中使用响应式表单进行数据校验&#xff0c;使用FormBuilder服务的 group()方法来构建一组FormControl实例。 需要监听其中控件的值的变化时&#xff0c;由于控件的类型为Abstrac…

小麦带你看postgres(代码模块结构)

初始化部分&#xff08;Initialization&#xff09; bootstrap&#xff1a;和系统表相关。 main&#xff1a;传递参数到后台的pg进程。 postmaster&#xff1a;控制pg服务开关&#xff0c;创建共享内存&#xff0c;循环等待连接并分配服务。 libpq&#xff1a;与子进程通讯相关…

c#学习的几个层次

1. 基本运用C#语法&#xff0c;在各种工具和示例代码的支持下&#xff0c;完成一些基本程序任务 2. 熟练掌握面向对象与组件构造&#xff0c;知其然亦知其所以然&#xff0c;完成一般小规模信息管理类软件项目开发任务 3. 深入理解CLR内核机制&#xff0c;对各种类型与.NET平…

nodeJs --- web服务器创建

一、下载nodeJs http://nodejs.cn/download/ 根据自己的情况选择下载 然后在命令行中输入 node -v 看是否安装成功 &#xff08;下载node时&#xff0c;会把npm包处理工具一起下&#xff09; 二、server,js 在文件夹下创建一个server.js var http require(http)http.createSer…

河北省医疗卫生数据中心案例简介

河北省卫生厅是负责全省卫生工作的政府部门&#xff0c;辖区人口6000万&#xff0c;其职能是基于国家卫生工作大政方针&#xff0c;研究提出全省卫生事业发展规划和战略目标&#xff0c;制订全省卫生工作计划、地方规范和标准&#xff0c;开展行业监督管理和服务。河北省卫生信…

Angular应用中tsconfig.json文件配置说明及配置全局路径映射

tsconfig.json文件配置说明1. tsconfig.json文件中的选项配置2. 配置全局路径映射1. tsconfig.json文件中的选项配置 TypeScript编译器配置文件的JSON模式 {"title": "JSON schema for the TypeScript compilers configuration file","$schema"…

疑问:c++中的memset

在dev c下调试 1 #include <mem.h>2 #include <iostream.h>3 #include <cstdlib>//配合system("PAUSE");用于看调试结果 4 5 intmain()6 {7 intia1[10];8 memset(ia1,1,10*sizeof(int));9 for(inti0;i<(sizeof(ia1)/sizeof(int));i)10 cout <…

Scrapy shell

一、Scrapy shell简介 Scrapy终端是一个交互终端&#xff0c;供您在未启动spider的情况下尝试及调试您的爬取代码。 其本意是用来测试提取数据的代码&#xff0c;不过您可以将其作为正常的Python终端&#xff0c;在上面测试任何的Python代码。 该终端是用来测试XPath或CSS表达式…

堆排序——HeapSort

基本思想&#xff1a; 图示&#xff1a; &#xff08;88,85,83,73,72,60,57,48,42,6&#xff09; 平均时间复杂度&#xff1a; O(NlogN)由于每次重新恢复堆的时间复杂度为O(logN)&#xff0c;共N - 1次重新恢复堆操作&#xff0c;再加上前面建立堆时N / 2次向下调整&#xff0c…

一个web蠕虫的简单实现

在这之前先鄙视下一些人发现漏洞就挂马的无耻行为&#xff0c;我曾经因为一个公开的漏洞而在一个网站站上发现24个各个所谓组织&#xff0c;所谓黑客的后门&#xff0c;鄙视&#xff01;所谓蠕虫&#xff0c;其本质是利用计算机或者应用程序的漏洞进行感染和传播的一段程序&…

SpringBoot设置Session失效时间

1 #Session超时时间设置&#xff0c;单位是秒&#xff0c;默认是30分钟 2 server.session.timeout10 然而并没有什么用&#xff0c;因为SpringBoot在TomcatServletWebServerFactory代码中写了这个 1 private long getSessionTimeoutInMinutes() { 2 Duration sessi…

js url传值中文乱码完美解决(JAVA)

首先在你的jsp页面这样更改&#xff1a; var url"你要传入的Action的位置&ipid"ipid"&keyWord"key; 这里的key是中文&#xff0c;从input中取到值后&#xff0c;使用alert(key)发现中文没有乱码。 那么我们可以对url进行一下处理&#xff1a;urlen…

Angular应用中配置全局路径映射

Angular应用中配置全局路径映射1. tsconfig.json文件配置说明2. 配置全局路径映射2.1 指定baseUrl属性值2.2 配置paths属性值2.3 使用示例为了避免移动文件时调整基本文件的引用路径&#xff0c;或者为了引用部分文件时缩短引用路径&#xff0c;可以在配置文件中配置全局路径映…

对Oracle中索引叶块分裂而引起延迟情况的测试和分析

在版本10.2.0.4未打上相关one-off补丁的情况下&#xff0c;分别对ASSM和MSSM管理模式表空间进行索引分裂测试&#xff0c;经过测试的结论如下&#xff1a; l 在10gr2版本中MSSM方式是不能避免索引分裂引起交易超时问题&#xff1b; l 10.2.0.4上的one-off补丁因为目前仅存在L…

node.js和npm版本升级及升级过程中遇到的问题和解决方案

Node.js和NPM版本升级1. 安装Node.js1.1 版本检查1.2 下载安装程序1.3 安装2. npm升级2.1 版本检查2.2 升级3. 检查Node.js和npm之间的版本对应关系4. 检查Angular CLI、Angular、Node.js、TypeScript 和 RxJS 兼容性矩阵最初在本地安装Node.js和npm时&#xff0c;是通过Angula…

学习进度(5)

记录时间&#xff1a; 第六周 所花时间&#xff08;包括上课&#xff09; 20h 代码量&#xff08;行&#xff09; 400行 博客量&#xff08;篇&#xff09; 0篇 了解到的知识点 结对开发石家庄地铁软件&#xff0c;迪杰斯特拉算法的应用 转载于:https://www.cnblogs.c…

Windows搭建wnmp

http://www.cnblogs.com/wujuntian/p/7252343.html转载于:https://www.cnblogs.com/xiaobai-y/p/7815945.html

我的名字叫博客

我的部落是一个小部落&#xff0c;人口比较少&#xff0c;资源很贫瘠&#xff0c;但是我的人们很努力&#xff0c;他们都是最强的&#xff01;转载于:https://www.cnblogs.com/cchenry/archive/2009/06/25/1511162.html

实例15 判断某一年是否为闰年

package wjf; import java.util.Scanner; public class wjf1{public static void main(String[] args){ //主方法Scanner scannew Scanner(System.in); System.out.println("请输入一个年份"); //向控制台输出一个提示信息long year;try{yearsc…

前端开发知识总结思维导图

前端开发扮演的一个角色&#xff1a; 前端开发知识点总结&#xff1a; 转载于:https://www.cnblogs.com/zhaodagang8/p/7821427.html

Angular应用提高打包速度

当Angular应用功能不断增加时&#xff0c;其打包速度会变慢&#xff0c;可以尝试使用以下方法缩短打包时间。 打开node_modules/webpack/lib/optimize/ModuleConcatenationPlugin.js文件&#xff0c;注释以下代码片段&#xff1a; for (let i 0; i < newModule.dependencie…