Flutter UI - Decoration 、shape(1)

本文介绍了Android中的渐变效果,如LinearGradient和RadialGradient的使用方法,以及BoxDecoration在创建美观界面时的装饰技巧。作者还强调了在移动开发中提升技能的重要性,推荐了一套针对高级Android架构师的系统学习资料,包括面试真题、设计思想和开源框架等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

color: Colors.redAccent,

offset: Offset(20, 20),

blurRadius: 10,

),

]

复制代码

上面的例子很难看,因为我们可能不知道阴影实际应该设置多大,这点可以参考官方文档的例子:

DecoratedBox(

decoration: BoxDecoration(

gradient: LinearGradient(colors:[Colors.red,Colors.orange[700]]), //背景渐变

borderRadius: BorderRadius.circular(3.0), //3像素圆角

boxShadow: [ //阴影

BoxShadow(

color:Colors.black54,

offset: Offset(2.0,2.0),

blurRadius: 4.0

)

]

),

child: Padding(padding: EdgeInsets.symmetric(horizontal: 80.0, vertical: 18.0),

child: Text(“Login”, style: TextStyle(color: Colors.white),),

)

)

复制代码


gradient 渐变

这部分和 android shape 的渐变差不多,区别是设置不同罢了,android shape 可以看:xml_绘图: shape 篇

Decoration 支持2种渐变:LinearGradient线性渐变 和 RadialGradient扫描渐变

LinearGradient :

  • begin - 渐变开始的位置

  • end - 渐变结束的位置

  • colors - 渐变颜色,是数组

  • stops - 值列表,装有0.0到1.0的数值

  • tileMode - 平铺模式

  1. 基本设置:

gradient: LinearGradient(colors: [

Colors.red,

Colors.white,

Colors.blue,

]),

复制代码

  1. 控制渐变方向

begin、end 3个参数可以控制渐变方向,默认都是左 -> 右,这里我们来个 右 -> 左

gradient: LinearGradient(colors: [

Colors.red,

Colors.white,

Colors.blue,

],

begin: Alignment.centerRight,

end: Alignment.centerLeft,

),

复制代码

另外写数值也可以,比如:

end: Alignment(0.6,0.0)

复制代码

0.6 表示的是百分比,1 最大

  1. TileMode 平铺

TileMode 平铺就是如何重重复渐变色:

具体效果大家看图:

  1. stops 渐变分割

stops 这个渐变分割可以理解成每段渐变占的百分比,stops 也是一个数组,个数必须和 colors 中颜色值个数匹配,要不显示不出来,其次 stops 里的数值综合最好 = 1,否则显示有偏差,最后 stops 里的数值必须是升序的…要不一样显示不出来

gradient: LinearGradient(

colors: [

Colors.red,

Colors.white,

Colors.blue,

],

begin: Alignment.centerRight,

end: Alignment.centerLeft,

stops: [0.1,0.3,0.7],

),

复制代码

RadialGradient:

center - 渐变中心 radius - 渐变半径,浮点数 colors - 渐变颜色,是数组 stops - 渐变分割 tileMode - 平铺模式

看了上面线性渐变,这些属性大家应该都清楚了,RadialGradient 默认就是中心点的,所以 center 的值都是在中心点上的偏移了,要是想从中心点开始,那就用 Alignment(0.0,0.0)。radius 半径用的是 0-1 的小数,表示百分比

gradient: RadialGradient(

colors: [

Colors.red,

Colors.blue,

],

center: Alignment(0.0,0.0),

radius: 0.5,

),

复制代码

一个很有借鉴意义的 RadialGradient 例子

Container(

margin: EdgeInsets.only(top: 50.0, left: 120.0), //容器外补白

constraints: BoxConstraints.tightFor(width: 200.0, height: 150.0), //卡片大小

decoration: BoxDecoration(//背景装饰

gradient: RadialGradient( //背景径向渐变

colors: [Colors.red, Colors.orange],

center: Alignment.topLeft,

radius: .98

),

boxShadow: [ //卡片阴影

BoxShadow(

color: Colors.black54,

offset: Offset(2.0, 2.0),

blurRadius: 4.0

)

]
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

**其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。

像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

这么重要的事情说三遍啦!点赞+点赞+点赞!

【Android高级架构师系统学习资料】高级架构师进阶必备——设计思想解读开源框架

第一章、热修复设计
第二章、插件化框架设计
第三章、组件化框架设计
第四章、图片加载框架
第五章、网络访问框架设计
第六章、RXJava 响应式编程框架设计
第七章、IOC 架构设计
第八章、Android 架构组件 Jetpack

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

.(img-k3uPM9o5-1712752960454)]

【Android高级架构师系统学习资料】高级架构师进阶必备——设计思想解读开源框架

第一章、热修复设计
第二章、插件化框架设计
第三章、组件化框架设计
第四章、图片加载框架
第五章、网络访问框架设计
第六章、RXJava 响应式编程框架设计
第七章、IOC 架构设计
第八章、Android 架构组件 Jetpack

[外链图片转存中…(img-s5zWSdWP-1712752960454)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值