HarmonyOS开发|ArkTS UI颜色API通用规则

鸿蒙应用开发工程师在日常写 UI 时,常误以为字体色、背景色、边框色要分开记。其实,在 HarmonyOS开发 中,HarmonyOS ArkTS 所有接收 color 参数的 API,入参规则完全通用------不管是文字、背景、边框,还是阴影、填充,传参逻辑一模一样。学会本篇这组基础用法,就能搞定绝大多数静态配色,省去反复查文档的功夫。​

一、核心知识点:颜色参数统一类型

所有颜色修饰方法支持 4 种入参,类型定义如下:

颜色参数: Color | string | number | Resource

修饰方法 作用 基础示例
.fontColor() 文字字体颜色 Text('文字').fontColor(颜色值)
.backgroundColor() 组件背景色 Column().backgroundColor(颜色值)
.borderColor() 组件边框色 Button().borderColor(颜色值)
.shadowColor() 阴影颜色 Image().shadowColor(颜色值)
.strokeColor() 线条绘制描边色 Shape().strokeColor(颜色值)
.fillColor() 图形填充色 Circle().fillColor(颜色值)

二、两种简易颜色写法(快速开发首选)

1. Color 内置枚举(零色值,快速调试)

鸿蒙官方封装基础纯色枚举,直接调用,无格式错误风险,适合快速写 demo、临时调试页面。

常用枚举: Color.Black 黑色 / Color.White 白色 / Color.Red 红色 / Color.Green 绿色 / Color.Blue 蓝色 / Color.Yellow 黄色 / Color.Transparent 透明

代码示例:

javascript 复制代码
// 文字绿色
Text('测试文本').fontColor(Color.Green)
// 容器蓝色背景
Column().backgroundColor(Color.Blue)
// 红色按钮边框
Button('按钮').border({width:3}).borderColor(Color.Red)
// 灰色文字阴影
Text('阴影文字').shadow({radius:5}).shadowColor(Color.Gray)

2. String 字符串色值(自定义精准配色)

日常开发最常用,支持 RGB、RGBA、十六进制 3 种格式,支持透明度自定义。

  1. rgb (0-255,0-255,0-255):无透明纯色
  2. rgba (0-255,0-255,0-255,0~1):带透明度,0 完全透明,1 不透明
  3. #RRGGBB 纯色 / #AARRGGBB 带透明(AA 代表透明度)
    代码示例:
javascript 复制代码
// 十六进制字体色
.fontColor('#008000')
// RGB背景色
.backgroundColor('rgb(0,128,0)')
// RGBA半透明边框
.borderColor('rgba(0,128,0,0.5)')
// 带透明十六进制阴影
.shadowColor('#80808080')

三、实战综合示例

下面是一个完整的 ArkTS 组件示例,它在一个 Column 容器中综合运用了 .fontColor().backgroundColor().borderColor().shadowColor() 等多种颜色修饰方法,并混合使用了 Color 枚举字符串色值,直观展示统一颜色参数的实际应用。

javascript 复制代码
// 综合示例:展示多种颜色修饰方法的统一参数用法
@Entry
@Component
struct ColorDemoPage {
  build() {
    Column({ space: 20 }) {
      // 1. 标题文本 - 使用 Color 枚举设置字体颜色
      Text('鸿蒙 ArkTS 颜色实战')
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
        .fontColor(Color.Blue) // 使用 Color 枚举设置蓝色文字

      // 2. 信息卡片 - 混合使用字符串色值设置背景、边框和阴影
      Column() {
        Text('颜色参数统一类型:Color | string | number | Resource')
          .fontSize(18)
          .fontColor('#333333') // 使用十六进制字符串设置深灰色文字
          .margin({ top: 15, bottom: 10 })
        
        Text('本卡片演示了背景色、边框色、阴影色的混合写法。')
          .fontSize(16)
          .fontColor('rgb(100, 100, 100)') // 使用 RGB 字符串设置灰色文字
          .margin({ bottom: 15 })
      }
      .width('90%')
      .padding(20)
      .backgroundColor('#F0F8FF') // 使用十六进制字符串设置浅蓝色背景
      .border({
        width: 2,
        color: 'rgba(0, 100, 200, 0.7)' // 使用 RGBA 字符串设置半透明蓝色边框
      })
      .borderRadius(15)
      .shadow({
        radius: 10,
        color: '#80808080', // 使用带透明度的十六进制字符串设置灰色阴影
        offsetX: 5,
        offsetY: 5
      })

      // 3. 按钮组 - 使用 Color 枚举和字符串色值对比
      Row({ space: 15 }) {
        Button('枚举色按钮')
          .fontColor(Color.White) // 使用 Color 枚举设置白色文字
          .backgroundColor(Color.Red) // 使用 Color 枚举设置红色背景
          .borderColor('#8B0000') // 使用十六进制字符串设置深红色边框
          .border({ width: 1 })
          .padding(10)

        Button('字符串色按钮')
          .fontColor('#FFFFFF') // 使用十六进制字符串设置白色文字
          .backgroundColor('rgb(0, 128, 0)') // 使用 RGB 字符串设置绿色背景
          .borderColor(Color.Green) // 使用 Color 枚举设置绿色边框
          .border({ width: 1 })
          .padding(10)
      }
      .margin({ top: 10 })

      // 4. 底部提示文本 - 使用 Color 枚举设置字体和阴影
      Text('提示:Color 枚举适合快速原型,字符串色值适合精准设计还原。')
        .fontSize(14)
        .fontColor(Color.Gray) // 使用 Color 枚举设置灰色文字
        .shadowColor('rgba(0,0,0,0.1)') // 使用 RGBA 字符串设置浅黑色阴影
        .shadow({ radius: 2 })
        .margin({ top: 30 })
    }
    .width('100%')
    .height('100%')
    .padding(20)
    .backgroundColor(Color.White) // 使用 Color 枚举设置白色页面背景
  }
}

代码关键点说明:

  1. 参数统一性 :所有 .fontColor().backgroundColor().borderColor().shadowColor() 方法都接受相同的颜色参数类型,本例中混合使用了 Color 枚举和 string 字符串。
  2. Color 枚举应用Color.BlueColor.RedColor.WhiteColor.GreenColor.Gray 等用于快速设置标准颜色。
  3. 字符串色值应用
    • 十六进制格式:'#333333''#F0F8FF''#8B0000''#FFFFFF'
    • RGB 格式:'rgb(100, 100, 100)''rgb(0, 128, 0)'
    • RGBA 格式:'rgba(0, 100, 200, 0.7)''rgba(0,0,0,0.1)'
    • 带透明度十六进制:'#80808080'
  4. 实际页面效果:该组件构建了一个完整的演示页面,包含标题、卡片、按钮组和提示文本,可直接运行查看视觉效果。

通过这个示例,你可以直观地看到:无论使用哪种颜色写法,所有颜色 API 的传参方式完全一致,只需掌握 Colorstring 两种基础写法,就能应对绝大多数 UI 配色场景。

四、本篇小结

  1. 鸿蒙全部颜色 API 共用一套参数规则,不用单独记忆;
  2. 快速原型开发优先用 Color 枚举,精准自定义配色选用 string 字符串;
  3. 所有组件、图形、阴影、边框均可直接套用上述两种写法。

💡 想获取更多鸿蒙 ArkTS 开发实战技巧?

本文介绍的颜色参数统一规则 是构建精美 UI 的基础。在 CSDN 社区,还有海量 HarmonyOS 开发者分享的组件封装、动效实现、性能优化等进阶实战内容。点击下方卡片,探索更多优质教程与资源,加速你的鸿蒙应用开发之旅!

相关推荐
lilian2333 小时前
HarmonyOS 7 新特性(二十五)|智慧手势:意图识别与误触治理
华为·harmonyos
贾伟康5 小时前
【时光清单|14】HarmonyOS ArkTS 主导航实战:统一页面入口、返回路径和参数校验
harmonyos·arkts·arkui·navigation·路由管理
贾伟康10 小时前
【时光清单|05】HarmonyOS ArkTS 倒计时卡片实战:适配 2x2、2x4 与 4x4 多尺寸
harmonyos·arkts·arkui·服务卡片·formextensionability
xy345310 小时前
Axure9.0 中继器遮罩的核心应用场景(精准适配列表交互)
前端·ui·html·原型·产品设计·axure9.0
小雨青年10 小时前
【HarmonyOS 7 悬浮页签深度实战】07 折叠屏、平板与宽窗口的布局适配
华为·harmonyos
熊猫钓鱼>_>12 小时前
鸿蒙AI Agent新范式:从“对话式辅助”到“工程化代理”的Harness架构实战解析
人工智能·笔记·学习·华为·架构·harmonyos
大锅盖112 小时前
HarmonyOS ArkUI 非遗纹样素材平台设计复盘:朱砂宣纸与鎏金黛蓝的文化守护
华为·harmonyos
2501_9197490313 小时前
华为鸿蒙管理学习生活与工作APP—小羊管理
学习·华为·生活·harmonyos·鸿蒙
贾伟康13 小时前
【时光清单|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明
harmonyos·arkts·agc·appgallery·发布复查
fengkai454514 小时前
三、存储基础知识
华为·云计算·存储