阅读视图

发现新文章,点击刷新页面。

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

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

一、颜色取值

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
❌