【鸿蒙next开发】ArkUI框架:UI界面-@ohos.arkui.Theme(主题换肤)

 往期鸿蒙5.0全套实战文章必看:(文中附带鸿蒙5.0全栈学习资料)


@ohos.arkui.Theme(主题换肤)

支持自定义主题风格,实现App组件风格跟随Theme切换。

说明

本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import { Theme, ThemeControl, CustomColors, Colors, CustomTheme } from '@kit.ArkUI';

Theme

当前生效的主题风格对象,可从onWillApplyTheme中获取。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型可读可写说明
colorsColors主题颜色资源。

Colors

主题颜色资源。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型可读可写说明
brandResourceColor品牌色。
warningResourceColor一级警示色。
alertResourceColor二级提示色。
confirmResourceColor确认色。
fontPrimaryResourceColor一级文本字体颜色。
fontSecondaryResourceColor二级文本字体颜色。
fontTertiaryResourceColor三级文本字体颜色。
fontFourthResourceColor四级文本字体颜色。
fontEmphasizeResourceColor高亮字体颜色。
fontOnPrimaryResourceColor一级文本反转颜色,用于彩色背景。
fontOnSecondaryResourceColor二级文本反转颜色,用于彩色背景。
fontOnTertiaryResourceColor三级文本反转颜色,用于彩色背景。
fontOnFourthResourceColor四级文本反转颜色,用于彩色背景。
iconPrimaryResourceColor一级图标颜色。
iconSecondaryResourceColor二级图标颜色。
iconTertiaryResourceColor三级图标颜色。
iconFourthResourceColor四级图标颜色。
iconEmphasizeResourceColor高亮图标颜色。
iconSubEmphasizeResourceColor高亮辅助图标颜色。
iconOnPrimaryResourceColor一级图标反转颜色,用于彩色背景。
iconOnSecondaryResourceColor二级图标反转颜色,用于彩色背景。
iconOnTertiaryResourceColor三级图标反转颜色,用于彩色背景。
iconOnFourthResourceColor四级图标反转颜色,用于彩色背景。
backgroundPrimaryResourceColor一级背景颜色(实色,不透明)。
backgroundSecondaryResourceColor二级背景颜色(实色,不透明)。
backgroundTertiaryResourceColor三级背景颜色(实色,不透明)。
backgroundFourthResourceColor四级背景颜色(实色,不透明)。
backgroundEmphasizeResourceColor高亮背景颜色(实色,不透明)。
compForegroundPrimaryResourceColor前背景。
compBackgroundPrimaryResourceColor白色背景。
compBackgroundPrimaryTranResourceColor白色透明背景。
compBackgroundPrimaryContraryResourceColor常亮背景。
compBackgroundGrayResourceColor灰色背景。
compBackgroundSecondaryResourceColor二级背景。
compBackgroundTertiaryResourceColor三级背景。
compBackgroundEmphasizeResourceColor高亮背景。
compBackgroundNeutralResourceColor黑色中性高亮背景颜色。
compEmphasizeSecondaryResourceColor20%高亮背景颜色。
compEmphasizeTertiaryResourceColor10%高亮背景颜色。
compDividerResourceColor通用分割线颜色。
compCommonContraryResourceColor通用反转颜色。
compBackgroundFocusResourceColor获焦态背景颜色。
compFocusedPrimaryResourceColor获焦态一级反转颜色。
compFocusedSecondaryResourceColor获焦态二级反转颜色。
compFocusedTertiaryResourceColor获焦态三级反转颜色。
interactiveHoverResourceColor通用悬停交互式颜色。
interactivePressedResourceColor通用按压交互式颜色。
interactiveFocusResourceColor通用获焦交互式颜色。
interactiveActiveResourceColor通用激活交互式颜色。
interactiveSelectResourceColor通用选择交互式颜色。
interactiveClickResourceColor通用点击交互式颜色。

CustomTheme

自定义主题风格对象。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型只读可选说明
colorsCustomColors自定义主题颜色资源。

CustomColors

type CustomColors = Partial<Colors>

自定义主题颜色资源类型。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

类型说明
Partial<Colors>自定义主题颜色资源类型。

ThemeControl

ThemeControl将自定义Theme应用于App组件内,实现App组件风格跟随Theme切换。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

setDefaultTheme

setDefaultTheme(theme: CustomTheme): void

将用户自定义Theme设置应用级默认主题,实现应用风格跟随Theme切换。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数名类型必填说明
themeCustomTheme表示设置的自定义主题风格

示例

import { CustomTheme, CustomColors, ThemeControl } from '@kit.ArkUI';
// 自定义主题颜色
class BlueColors implements CustomColors {
  fontPrimary = Color.White;
  backgroundPrimary = Color.Blue;
  brand = Color.Blue; //品牌色
}

class PageCustomTheme implements CustomTheme {
  colors?: CustomColors;

  constructor(colors: CustomColors) {
    this.colors = colors;
  }
}
// 创建实例
const BlueColorsTheme = new PageCustomTheme(new BlueColors());
// 在页面build之前执行ThemeControl.setDefaultTheme,设置App默认样式风格为BlueColorsTheme。
ThemeControl.setDefaultTheme(BlueColorsTheme);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值