《鸿蒙HarmonyOS 5.0开发教程》基础篇06:颜色值和像素单位

652 阅读2分钟

鸿蒙应用的页面开发,在处理组件样式时会涉及到很多的颜色取值和长度大小取值。

一、颜色取值

ArkTS 中提供了 4 种描述资源颜色的类型,用来设置文字颜色、背景颜色还是边框颜色等。

颜色类型说明示例
Color 枚举类型ArkTS 内置的颜色枚举类型Color.Orange
颜色英文单词支持一些基础的颜色单词"green"
16进制支持HEX格式的颜色取值"#000000"、0xFFFFFF
rgb格式以rgb三原色方式设置颜色(还可以添加a设置透明度)rgb(0, 0, 0)、rgba(0, 0, 0, 0.5)

说明:以上 4 种颜色取值,适用于所有需要设置颜色样式的场景。

示例代码:

build() {
    Column() {
      Text("文字颜色")
        .fontColor("red")

      Row() {
        Column()
          .width(100).height(100)
          .backgroundColor('#eeeeee')

        Column()
          .width(100).height(100)
          .backgroundColor(0x999999)
      }

      Row() {
        Column()
          .width(100).height(100)
          .backgroundColor('rgb(125, 125, 1)')

        Column()
          .width(100).height(100)
          .backgroundColor('rgba(125, 125, 1, 0.5)')

        Column()
          .width(100).height(100)
          .borderWidth(1)
          .borderColor(Color.Orange)
      }
    }
  }

代码预览效果如下:

image-20250116234930437

二、像素单位

ArkTS 中也提供了 4 种像素单位(官方文档),用来设置组件的宽高大小、位置、文字的字体大小等样式。

像素单位说明
px屏幕物理像素单位。
vp屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,当数值不带单位时,默认单位vp。
fp字体像素,与vp类似适用屏幕密度变化,随系统字体大小设置变化。
lpx视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度的比值。

说明:

  • 在鸿蒙应用的开发中,最常用的两个像素单位是 vp 和 fp;
  • vp 单位可用于所有需要设置像素大小的样式,例如组件宽高大小、位置移动,以及文字大小;
  • fp 单位专门用于设置文字字体大小,和 vp 不同的是,通过 fp 设置的文字大小,会随着设备系统字体大小一起缩放;

示例代码:

build() {
  Column() {
    Column() {
      Text('以vp作为单位的文字')
        .fontSize(20)
      Text('以fp作为单位的文字')
        .fontSize('20fp')
    }
    .width('200vp').height(100).border({ width: 1 })
  }
  .height('100%').width('100%')
}

说明:除了官方提到的 4 种像素单位以外,% 这些常规的单位在 ArkTS 中都可以正常使用。

代码预览效果如下:

image-20250116235222854