RadialGradient 径向光晕:大日期数字的视觉增强

前言

在 UI 设计中,光晕效果 可以为元素添加视觉点缀,增强层次感和品牌调性。HarmonyOS 提供了 RadialGradient 径向渐变 API,用于创建从中心向四周扩散的渐变效果。

"海风日记"的首页通过 RadialGradient 为日期数字添加了径向光晕,让数字看起来更加醒目和富有层次感。本文将从源码出发,深入讲解 RadialGradient 的完整用法。


一、RadialGradient 概述

1.1 基本语法

typescript 复制代码
Column()
  .radialGradient({
    center: ['50%', '50%'],           // 中心点位置
    radius: '50%',                     // 渐变半径
    colors: [
      ['rgba(245,166,35,0.22)', 0.0],  // 中心色:橙色,透明度 22%
      ['rgba(245,166,35,0.0)', 1.0]    // 边缘色:透明
    ]
  })

1.2 参数说明

参数 类型 说明 示例
center [string, string] 渐变中心点 ['50%', '50%']
radius string 渐变半径 '50%'
colors [string, number][] 色阶数组 [['#FFF', 0], ['#000', 1]]

二、首页日期光晕实现

2.1 源码

typescript 复制代码
// 大日期数字(带径向光晕)
Stack({ alignContent: Alignment.Center }) {
  // 光晕层
  Column()
    .width(64)
    .height(64)
    .borderRadius(32)
    .radialGradient({
      center: ['50%', '50%'],
      radius: '50%',
      colors: [
        ['rgba(245,166,35,0.22)', 0.0],  // 中心橙色光晕
        ['rgba(245,166,35,0.0)', 1.0]    // 边缘透明
      ]
    })

  // 数字层
  Text(new Date().getDate().toString())
    .fontSize(52)
    .fontColor('#2D2926')
    .fontWeight(FontWeight.Bolder)
    .lineHeight(52)
}

2.2 视觉效果

复制代码
┌──────────────────┐
│   ┌──────────┐  │
│   │ 橙色光晕  │  │  ← 中心亮,边缘淡
│   │   17     │  │  ← 数字叠加在光晕上
│   └──────────┘  │
└──────────────────┘

三、RadialGradient 与 LinearGradient 的对比

3.1 对比表格

对比维度 RadialGradient LinearGradient
渐变方向 从中心向外扩散 线性方向
参数 center + radius angle
视觉 圆形光晕 平面过渡
适用场景 发光效果、光晕 背景、按钮

3.2 选择指南

  • 需要光晕/发光效果 → 使用 RadialGradient
  • 需要背景过渡 → 使用 LinearGradient

四、RadialGradient 的实际应用

4.1 按钮光晕

typescript 复制代码
Button()
  .radialGradient({
    center: ['50%', '50%'],
    radius: '50%',
    colors: [['rgba(255,255,255,0.15)', 0], ['rgba(255,255,255,0)', 1]]
  })

4.2 头像光晕

typescript 复制代码
Circle()
  .width(72).height(72)
  .fill('#FFE4B0')
  .shadow({ radius: 12, color: 'rgba(245,166,35,0.25)' })

五、性能优化

5.1 透明度控制

typescript 复制代码
// 中心透明度 22%,边缘 0%
colors: [
  ['rgba(245,166,35,0.22)', 0.0],  // 中心
  ['rgba(245,166,35,0.0)', 1.0]    // 边缘
]

六、常见问题与排查

6.1 渐变不显示

问题:设置了 radialGradient 但渐变效果不显示。

原因:容器没有设置宽高,或渐变被其他元素覆盖。

解决方案:确保容器设置了明确的宽高。


总结

本文通过"海风日记"首页日期数字的径向光晕,深入讲解了 RadialGradient 的用法:

  1. 基本语法:center、radius、colors 参数配置
  2. 首页日期光晕:Stack 叠加光晕和数字
  3. 与 LinearGradient 的对比:选择指南
  4. 实际应用:按钮光晕、头像光晕

下一篇文章将进入 第四系列:写日记与编辑,敬请期待。

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


相关资源:

相关推荐
东风破_10 小时前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
东风破_10 小时前
danci 项目(三):从 JSON 数据到 AI Coding,真实项目里的数据清洗、Prompt 和工程规范
前端·后端·node.js
东风破_11 小时前
danci 项目(一):从需求到架构,一个单词学习系统为什么会这样设计
前端·后端·node.js
jay神12 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
2601_9620738115 小时前
Spring全面详解(基础版)
java·后端·spring
IT_陈寒15 小时前
Vite打包时的静态资源坑,我帮你踩过了
前端·人工智能·后端
考虑考虑15 小时前
kubectl命令
运维·后端·自动化运维
第五页的你16 小时前
ElasticSearch结合本地消息表实现搜索功能
后端
谢亮_vipxieliang16 小时前
ValidX分组验证详解:不同场景使用不同验证规则
java·spring boot·后端·spring cloud·eclipse·hibernate
超兔一体云16 小时前
MySQL索引优化实战——从慢查询到索引调优
后端·mysql