1e41f4b71Sopenharmony_ci# @ohos.arkui.Theme(主题换肤) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci支持自定义主题风格,实现App组件风格跟随Theme切换。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 导入模块 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci```ts 12e41f4b71Sopenharmony_ciimport { Theme, ThemeControl, CustomColors, Colors, CustomTheme } from '@kit.ArkUI'; 13e41f4b71Sopenharmony_ci``` 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## Theme 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci当前生效的主题风格对象,可从[onWillApplyTheme](arkui-ts/ts-custom-component-lifecycle.md#onwillapplytheme12)中获取。 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 24e41f4b71Sopenharmony_ci| ------ |-------------------|-----|-----|----------| 25e41f4b71Sopenharmony_ci| colors | [Colors](#colors) | 否 | 否 | 主题颜色资源。 | 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci## Colors 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci主题颜色资源。 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 36e41f4b71Sopenharmony_ci|-------------------------------|-----------------------------------------------------|-----|-----|------------------| 37e41f4b71Sopenharmony_ci| brand | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 品牌色。 | 38e41f4b71Sopenharmony_ci| warning | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 一级警示色。 | 39e41f4b71Sopenharmony_ci| alert | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级提示色。 | 40e41f4b71Sopenharmony_ci| confirm | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 确认色。 | 41e41f4b71Sopenharmony_ci| fontPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 一级文本字体颜色。 | 42e41f4b71Sopenharmony_ci| fontSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级文本字体颜色。 | 43e41f4b71Sopenharmony_ci| fontTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 三级文本字体颜色。 | 44e41f4b71Sopenharmony_ci| fontFourth | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 四级文本字体颜色。 | 45e41f4b71Sopenharmony_ci| fontEmphasize | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 高亮字体颜色。 | 46e41f4b71Sopenharmony_ci| fontOnPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 一级文本反转颜色,用于彩色背景。 | 47e41f4b71Sopenharmony_ci| fontOnSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级文本反转颜色,用于彩色背景。 | 48e41f4b71Sopenharmony_ci| fontOnTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 三级文本反转颜色,用于彩色背景。 | 49e41f4b71Sopenharmony_ci| fontOnFourth | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 四级文本反转颜色,用于彩色背景。 | 50e41f4b71Sopenharmony_ci| iconPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 一级图标颜色。 | 51e41f4b71Sopenharmony_ci| iconSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级图标颜色。 | 52e41f4b71Sopenharmony_ci| iconTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 三级图标颜色。 | 53e41f4b71Sopenharmony_ci| iconFourth | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 四级图标颜色。 | 54e41f4b71Sopenharmony_ci| iconEmphasize | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 高亮图标颜色。 | 55e41f4b71Sopenharmony_ci| iconSubEmphasize | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 高亮辅助图标颜色。 | 56e41f4b71Sopenharmony_ci| iconOnPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 一级图标反转颜色,用于彩色背景。 | 57e41f4b71Sopenharmony_ci| iconOnSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级图标反转颜色,用于彩色背景。 | 58e41f4b71Sopenharmony_ci| iconOnTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 三级图标反转颜色,用于彩色背景。 | 59e41f4b71Sopenharmony_ci| iconOnFourth | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 四级图标反转颜色,用于彩色背景。 | 60e41f4b71Sopenharmony_ci| backgroundPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 一级背景颜色(实色,不透明)。 | 61e41f4b71Sopenharmony_ci| backgroundSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级背景颜色(实色,不透明)。 | 62e41f4b71Sopenharmony_ci| backgroundTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 三级背景颜色(实色,不透明)。 | 63e41f4b71Sopenharmony_ci| backgroundFourth | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 四级背景颜色(实色,不透明)。 | 64e41f4b71Sopenharmony_ci| backgroundEmphasize | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 高亮背景颜色(实色,不透明)。 | 65e41f4b71Sopenharmony_ci| compForegroundPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 前背景。 | 66e41f4b71Sopenharmony_ci| compBackgroundPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 白色背景。 | 67e41f4b71Sopenharmony_ci| compBackgroundPrimaryTran | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 白色透明背景。 | 68e41f4b71Sopenharmony_ci| compBackgroundPrimaryContrary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 常亮背景。 | 69e41f4b71Sopenharmony_ci| compBackgroundGray | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 灰色背景。 | 70e41f4b71Sopenharmony_ci| compBackgroundSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 二级背景。 | 71e41f4b71Sopenharmony_ci| compBackgroundTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 三级背景。 | 72e41f4b71Sopenharmony_ci| compBackgroundEmphasize | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 高亮背景。 | 73e41f4b71Sopenharmony_ci| compBackgroundNeutral | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 黑色中性高亮背景颜色。 | 74e41f4b71Sopenharmony_ci| compEmphasizeSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 20%高亮背景颜色。 | 75e41f4b71Sopenharmony_ci| compEmphasizeTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 10%高亮背景颜色。 | 76e41f4b71Sopenharmony_ci| compDivider | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用分割线颜色。 | 77e41f4b71Sopenharmony_ci| compCommonContrary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用反转颜色。 | 78e41f4b71Sopenharmony_ci| compBackgroundFocus | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 获焦态背景颜色。 | 79e41f4b71Sopenharmony_ci| compFocusedPrimary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 获焦态一级反转颜色。 | 80e41f4b71Sopenharmony_ci| compFocusedSecondary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 获焦态二级反转颜色。 | 81e41f4b71Sopenharmony_ci| compFocusedTertiary | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 获焦态三级反转颜色。 | 82e41f4b71Sopenharmony_ci| interactiveHover | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用悬停交互式颜色。 | 83e41f4b71Sopenharmony_ci| interactivePressed | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用按压交互式颜色。 | 84e41f4b71Sopenharmony_ci| interactiveFocus | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用获焦交互式颜色。 | 85e41f4b71Sopenharmony_ci| interactiveActive | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用激活交互式颜色。 | 86e41f4b71Sopenharmony_ci| interactiveSelect | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用选择交互式颜色。 | 87e41f4b71Sopenharmony_ci| interactiveClick | [ResourceColor](arkui-ts/ts-types.md#resourcecolor) | 否 | 否 | 通用点击交互式颜色。 | 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci## CustomTheme 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci自定义主题风格对象。 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 98e41f4b71Sopenharmony_ci|-------------------------------|-----------------------------------------------------|-----|-----|------------| 99e41f4b71Sopenharmony_ci| colors | [CustomColors](#customcolors) | 否 | 是 | 自定义主题颜色资源。 | 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci## CustomColors 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_citype CustomColors = Partial\<Colors> 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci自定义主题颜色资源类型。 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 110e41f4b71Sopenharmony_ci 111e41f4b71Sopenharmony_ci| 类型 | 说明 | 112e41f4b71Sopenharmony_ci|-----|--------------| 113e41f4b71Sopenharmony_ci| Partial<[Colors](#colors)> | 自定义主题颜色资源类型。 | 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci## ThemeControl 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ciThemeControl将自定义Theme应用于App组件内,实现App组件风格跟随Theme切换。 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 122e41f4b71Sopenharmony_ci 123e41f4b71Sopenharmony_ci### setDefaultTheme 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_cisetDefaultTheme(theme: [CustomTheme](#customtheme)): void 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci将用户自定义Theme设置应用级默认主题,实现应用风格跟随Theme切换。 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 134e41f4b71Sopenharmony_ci|--------------|------------------------------|------|----------------| 135e41f4b71Sopenharmony_ci| theme | [CustomTheme](#customtheme) | 是 | 表示设置的自定义主题风格 | 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci**示例** 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci```ts 140e41f4b71Sopenharmony_ciimport { CustomTheme, CustomColors, ThemeControl } from '@kit.ArkUI'; 141e41f4b71Sopenharmony_ci// 自定义主题颜色 142e41f4b71Sopenharmony_ciclass BlueColors implements CustomColors { 143e41f4b71Sopenharmony_ci fontPrimary = Color.White; 144e41f4b71Sopenharmony_ci backgroundPrimary = Color.Blue; 145e41f4b71Sopenharmony_ci brand = Color.Blue; //品牌色 146e41f4b71Sopenharmony_ci} 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ciclass PageCustomTheme implements CustomTheme { 149e41f4b71Sopenharmony_ci colors?: CustomColors; 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci constructor(colors: CustomColors) { 152e41f4b71Sopenharmony_ci this.colors = colors; 153e41f4b71Sopenharmony_ci } 154e41f4b71Sopenharmony_ci} 155e41f4b71Sopenharmony_ci// 创建实例 156e41f4b71Sopenharmony_ciconst BlueColorsTheme = new PageCustomTheme(new BlueColors()); 157e41f4b71Sopenharmony_ci// 在页面build之前执行ThemeControl.setDefaultTheme,设置App默认样式风格为BlueColorsTheme。 158e41f4b71Sopenharmony_ciThemeControl.setDefaultTheme(BlueColorsTheme); 159e41f4b71Sopenharmony_ci``` 160