当前位置: 首页 > news >正文

HarmonyOS 6 渐变颜色通用属性实战教程(linear/radial/sweep)

文章目录

    • 一、核心渐变属性
    • 二、完整可运行实战代码
    • 三、各渐变属性详细使用解析
      • 1. linearGradient 线性渐变
      • 2. radialGradient 径向渐变
      • 3. sweepGradient 角度渐变
    • 四、渐变属性组合实战:渐变+阴影
      • 代码示例
      • 效果说明
    • 五、运行效果与环境说明
      • 1. 运行效果
      • 2. 运行环境要求
    • 总结

一、核心渐变属性

HarmonyOS6提供的三种渐变属性均为通用属性,可直接挂载在UI组件上使用,核心参数以对象形式配置,其中colors为必选参数,用于定义渐变色彩及过渡节点,各渐变类型的专属参数用于控制渐变方向、中心、范围等,具体如下:

渐变属性渐变类型核心特点关键参数
linearGradient线性渐变沿指定角度做直线色彩过渡,最常用colors:渐变色彩数组;angle:渐变角度(0°-360°)
radialGradient径向渐变从指定中心向外围做辐射状色彩过渡colors:渐变色彩数组;center:渐变中心坐标;radius:渐变半径
sweepGradient角度渐变以指定中心为圆心,沿顺时针方向做环形色彩过渡colors:渐变色彩数组;center:渐变中心坐标

通用参数说明

  • colors:数组格式,每个元素为[颜色值, 位置值],位置值为0.0-1.0的数字,代表该颜色在渐变过程中的占比节点;
  • 坐标参数:以[0.5, 0.5]为例,为组件的相对坐标,x轴与y轴范围均为0.0-1.0,[0.5, 0.5]代表组件的正中心。

二、完整可运行实战代码

以下代码覆盖三种渐变类型的基础用法及渐变+阴影的组合实战效果,页面支持上下滑动,渐变效果直观可辨,无需额外图片资源。

@Entry @Component struct GradientDemo { build() { Scroll() { Column({ space: 25 }) { Text("HarmonyOS6 渐变颜色属性 完整演示") .fontSize(26) .fontWeight(FontWeight.Bold) .margin({ top: 15 }); // 1. 线性渐变 Text("1. 线性渐变 linearGradient") .fontSize(19) .alignSelf(ItemAlign.Start); Row() .width(300) .height(80) .borderRadius(12) .linearGradient({ colors: [ [Color.Red, 0.0], [Color.Yellow, 1.0] ], angle: 180 }); // 2. 多色线性渐变 Text("2. 多色线性渐变") .fontSize(19) .alignSelf(ItemAlign.Start); Row() .width(300) .height(80) .borderRadius(12) .linearGradient({ colors: [ [Color.Blue, 0.0], [Color.Green, 0.5], [Color.Pink, 1.0] ], angle: 45 }); // 3. 径向渐变(官方标准正确写法) Text("3. 径向渐变 radialGradient") .fontSize(19) .alignSelf(ItemAlign.Start); Row() .width(300) .height(120) .borderRadius(12) .radialGradient({ colors: [ [Color.White, 0.0], [Color.Black, 1.0] ], center: [0.5, 0.5], radius: 150.0 }); // 4. 角度渐变(官方标准正确写法) Text("4. 角度渐变 sweepGradient") .fontSize(19) .alignSelf(ItemAlign.Start); Row() .width(180) .height(180) .borderRadius(90) .sweepGradient({ colors: [ [Color.Red, 0.0], [Color.Yellow, 0.33], [Color.Blue, 0.66], [Color.Green, 1.0] ], center: [0.5, 0.5] }); // 5. 组合效果:渐变 + 阴影 Text("5. 组合效果:渐变 + 阴影") .fontSize(19) .alignSelf(ItemAlign.Start); Row() .width(300) .height(80) .borderRadius(20) .linearGradient({ colors: [ [Color.Blue, 0.0], [Color.Green, 1.0] ], angle: 0 }) .shadow({ radius: 20, color: "#50000000", offsetX: 5, offsetY: 5 }) .margin({ bottom: 50 }); } .width('100%') .padding(15); } .backgroundColor('#f8f8f8'); } }

运行效果如图:

三、各渐变属性详细使用解析

1. linearGradient 线性渐变

线性渐变是开发中最常用的渐变方式,沿指定角度实现直线方向的色彩过渡,核心参数为colorsangle

  • 代码示例:基础双色线性渐变,沿180°方向实现红到黄的过渡
    linearGradient({ colors: [[Color.Red, 0.0], [Color.Yellow, 1.0]], angle: 180 })
  • 参数说明
    • angle: 180:渐变角度为180°,代表从组件顶部向底部做垂直渐变;0°为从左到右水平渐变,45°为从左下到右上斜向渐变,角度值范围0°-360°;
    • 多色渐变:如示例中45°斜向渐变,配置[Color.Blue, 0.0][Color.Green, 0.5][Color.Pink, 1.0],代表0%位置为蓝色,50%位置为绿色,100%位置为粉色,实现三色自然过渡。

2. radialGradient 径向渐变

径向渐变实现从中心向外围的辐射状色彩过渡,核心参数为colorscenterradius,需严格遵循官方数组格式配置center,数值型配置radius

  • 代码示例:以组件中心为原点,实现白到黑的径向渐变
    radialGradient({ colors: [[Color.White, 0.0], [Color.Black, 1.0]], center: [0.5, 0.5], radius: 150.0 })
  • 参数说明
    • center: [0.5, 0.5]:渐变中心为组件正中心,若需调整可修改数值,如[0.2, 0.3]代表组件左上方位置;
    • radius: 150.0:渐变半径为150px,需根据组件实际尺寸配置,保证渐变效果覆盖目标区域。

3. sweepGradient 角度渐变

角度渐变也叫环形渐变,以指定中心为圆心,沿顺时针方向做360°环形色彩过渡,常配合圆形组件(borderRadius设为宽高一半)实现彩虹环、颜色表盘等效果,核心参数为colorscenter

  • 代码示例:圆形组件上实现红、黄、蓝、绿的环形角度渐变
    sweepGradient({ colors: [[Color.Red, 0.0], [Color.Yellow, 0.33], [Color.Blue, 0.66], [Color.Green, 1.0]], center: [0.5, 0.5] })
  • 参数说明
    • 位置值均分:示例中4种颜色对应0.0、0.33、0.66、1.0,实现环形方向上的色彩均匀过渡;
    • 圆形适配:将Row组件宽高设为180px,borderRadius设为90px,形成正圆,让角度渐变效果更贴合环形视觉。

四、渐变属性组合实战:渐变+阴影

HarmonyOS的通用属性支持自由组合,将渐变属性shadow阴影属性结合,可实现具有立体层次感的UI组件(如渐变按钮、渐变卡片),是实际开发中的高频用法。

代码示例

linearGradient({ colors: [[Color.Blue, 0.0], [Color.Green, 1.0]], angle: 0 }) .shadow({ radius: 20, color: "#50000000", offsetX: 5, offsetY: 5 })

效果说明

  1. 线性渐变:angle: 0实现从左到右的蓝到绿水平渐变,配合borderRadius: 20打造圆角按钮基础样式;
  2. 阴影效果:radius: 20设置阴影模糊半径,color: "#50000000"设置半透明黑色阴影,offsetX: 5offsetY: 5让阴影向组件右下方偏移,模拟立体光影效果。

五、运行效果与环境说明

1. 运行效果

代码运行后将呈现5个核心效果,页面支持上下滑动,各效果区分明显:

  1. 基础线性渐变:红→黄垂直渐变,直观展示双色线性渐变核心效果;
  2. 多色线性渐变:蓝→绿→粉45°斜向渐变,体现多色过渡的灵活性;
  3. 径向渐变:白→黑中心辐射渐变,展示辐射状色彩过渡效果;
  4. 角度渐变:红→黄→蓝→绿圆形环形渐变,完美匹配角度渐变的视觉特征;
  5. 渐变+阴影:蓝→绿水平渐变圆角按钮,带立体阴影,贴近实际开发场景。

2. 运行环境要求

  1. 开发工具:DevEco Studio NEXT 最新版本;
  2. 系统版本:HarmonyOS 6(API18+)或HarmonyOS NEXT;
  3. 无需额外资源:代码基于系统自带Color类实现色彩配置,无需添加图片、自定义颜色文件;
  4. 组件适配:渐变属性可直接作用于Row、Column、Stack、Container等所有基础容器,及Button、Text等UI组件,可根据需求灵活替换。

总结

本文基于官方文档,详细讲解了linearGradientradialGradientsweepGradient三种渐变通用属性的核心用法,及渐变与阴影的组合实战技巧。

HarmonyOS的渐变属性语法简洁、兼容性强,无需引入额外组件库,直接挂载在UI组件上即可实现多样化的色彩过渡效果,熟练掌握其使用方式,可大幅提升HarmonyOS应用的UI视觉质感,满足按钮、卡片、背景、装饰元素等各类开发场景的视觉需求。

后续可根据实际业务需求,调整渐变的色彩组合、角度、中心、半径等参数,实现更个性化的渐变效果,结合其他通用属性(如borderopacity),打造更丰富的UI视觉体验。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力!

http://www.jsqmd.com/news/496708/

相关文章:

  • 基于RocketPy的液氧甲烷不锈钢火箭陆地发射完整仿真系统
  • 洛谷:P2615 [NOIP 2015 提高组] 神奇的幻方
  • 2026权威支护锚杆厂家推荐航德天下实力入选:涨壳式锚杆/灌浆锚杆/组合锚杆/自进式锚杆/螺纹锚杆/隧道锚杆/选择指南 - 优质品牌商家
  • 将大型 CSV 文件按指定行数拆分到 Excel 的不同工作表中
  • 事件触发控制代码及其对应参考文献
  • 小型化设备精准调节方案:PKH30梯形丝杆模组(±0.05mm)非标定制技术解析与案例
  • 【C++笔记5】类和对象(构造函数、析构函数、拷贝构造函数、赋值运算符重载)
  • 2026年物流专线公司专业选型指南:工厂物流、大件货运与长途整车运输怎么选? - 品牌推荐官
  • 西门子S7-1200 PLC工业污水处理系统:基于博途V13sp1的WinCC画面组态与仿真报告
  • 追剪算法:让机械加工更智能
  • 天猫超市卡回收的简单方法,安心转让渠道推荐 - 京回收小程序
  • 春日桌搭新首选!ROG魔霸9 Mini:3L 迷你机身,塞下锐龙 9+RTX5070
  • 高级特性之dubbo超时机制及集群容错机制
  • comsol数值模拟。 金属合金凝固数值模拟,连铸过程数值模拟,相场流场温度场,坯壳厚度计算
  • burpsuite详细安装教程及功能讲解
  • 基于全阶磁链观测器的异步电机矢量控制
  • 3月17日打卡
  • AI 硬件隐私困境下的市场博弈与未来走向
  • 批量PPT处理工具
  • OpenCV 实战:多角度模板匹配(旋转不变性实现)
  • simulink仿真模型,同步电机死区补偿,自适应补偿,图一前面开了补偿,后面关了补偿,可以看...
  • Linux 的 cat 命令
  • 不同构型混合动力汽车模型及控制策略,包括P2、P1+P3、P2+P3、P1+P2+P4、P1+...
  • 智慧农业之102种农业害虫目标检测系统 yolo格式农业害虫图像识别系统(数据集+模型+界面) 第10568期
  • 2026年评价高的水帘柜公司推荐:pp喷淋塔/rco沸石转轮设备/不锈钢喷淋塔/催化燃烧设备/喷塑流水线/选择指南 - 优质品牌商家
  • COMSOL模型中的双活塞协作运动:从理论到实践
  • DAY 25
  • 2026年净化车间厂家哪家好?五大厂家最新权威推荐榜单出炉! - 深度智识库
  • NPC三电平并网逆变器闭环控制仿真 采用LCL滤波器。 包含锁相环,闭环控制器,驱动发生器
  • 一小时速通:微前端