ui_abstract_clock
ui_abstract_clock 模块提供抽象时钟组件基类,定义时钟视图的通用属性与时针/分针/秒针绘制接口。
Class Summary
OHOS::UIAbstractClock
提供时钟相关功能的抽象类,支持时间设置、获取与工作模式切换
- 构造:
UIAbstractClock(uint8_t hour, uint8_t minute, uint8_t second) -
成员函数:
接口名称 功能简述 UIAbstractClock 构造时钟对象并设置初始时间 GetViewType 获取视图类型 SetTime24Hour 以24小时制设置时间 SetTime12Hour 以12小时制设置时间 GetCurrentHour 获取当前小时数 GetCurrentMinute 获取当前分钟数 GetCurrentSecond 获取当前秒数 IncOneSecond 时间递增一秒 UpdateClock 更新时钟显示 SetWorkMode 设置时钟工作模式 GetWorkMode 获取当前工作模式 -
使用包含头文件:
#include "components/ui_abstract_clock.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/components/ui_abstract_clock.h - 公有运算符:无
- 继承关系:UIViewGroup
- 嵌套类型:enum WorkMode
- 模板形参:无
Functions
OHOS::UIAbstractClock
UIAbstractClock
UIAbstractClock(uint8_t hour, uint8_t minute, uint8_t second)
功能说明
- 核心用途:构造 UIAbstractClock 对象,并使用指定的小时、分钟、秒设置初始时间
- 设计目的:提供带初始时间参数的构造方式,对象构造后即拥有指定时间状态
- 使用场景:需要以指定时间创建时钟对象的场景
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| hour | uint8_t | 初始小时值 | 0 ~ 255(设置时会进行模运算,24小时制取值范围为 0 ~ 23) |
| minute | uint8_t | 初始分钟值 | 0 ~ 255(设置时会进行模运算,取值范围为 0 ~ 59) |
| second | uint8_t | 初始秒值 | 0 ~ 255(设置时会进行模运算,取值范围为 0 ~ 59) |
GetViewType
virtual UIViewType GetViewType() const override
功能说明
- 核心用途:获取当前视图的类型标识
- 设计目的:为视图类型判断提供统一接口,支持运行时类型识别
- 使用场景:在视图类型判断、类型分发等场景中使用
返回值
- 返回类型:
UIViewType
返回视图类型标识
| 返回值 | 触发场景 |
|---|---|
| UI_ABSTRACT_CLOCK | 当前对象为 UIAbstractClock 类型 |
SetTime24Hour
virtual void SetTime24Hour(uint8_t hour, uint8_t minute, uint8_t second)
功能说明
- 核心用途:以24小时制格式设置时钟的当前时间
- 设计目的:提供24小时制时间设置入口,参数经过模运算后存储
- 使用场景:需要以24小时制更新时钟显示时间的场景
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| hour | uint8_t | 设置的小时值,模运算后范围 [0, 23] | 0 ~ 255 |
| minute | uint8_t | 设置的分钟值,模运算后范围 [0, 59] | 0 ~ 255 |
| second | uint8_t | 设置的秒值,模运算后范围 [0, 59] | 0 ~ 255 |
Kconfig 配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| ENABLE_SWEEP_CLOCK | 启用时 SetTime24Hour 为 virtual 函数,支持派生类重写 | 1 |
SetTime12Hour
void SetTime12Hour(uint8_t hour, uint8_t minute, uint8_t second, bool am)
功能说明
- 核心用途:以12小时制格式设置时钟的当前时间
- 设计目的:提供12小时制时间设置入口,内部转换为24小时制存储
- 使用场景:需要以12小时制(上午/下午)更新时钟显示时间的场景
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| hour | uint8_t | 设置的小时值,模运算后范围 [0, 11] | 0 ~ 255 |
| minute | uint8_t | 设置的分钟值,模运算后范围 [0, 59] | 0 ~ 255 |
| second | uint8_t | 设置的秒值,模运算后范围 [0, 59] | 0 ~ 255 |
| am | bool | 上午/下午标识,true 表示上午,false 表示下午 | true / false |
GetCurrentHour
uint8_t GetCurrentHour() const
功能说明
- 核心用途:获取时钟当前的小时数
- 设计目的:为外部提供当前时间的小时值读取能力
- 使用场景:需要读取或显示当前小时数的场景
返回值
- 返回类型:
uint8_t
返回当前小时数
| 返回值 | 触发场景 |
|---|---|
| 0 ~ 23 | 当前时钟的小时值(24小时制) |
GetCurrentMinute
uint8_t GetCurrentMinute() const
功能说明
- 核心用途:获取时钟当前的分钟数
- 设计目的:为外部提供当前时间的分钟值读取能力
- 使用场景:需要读取或显示当前分钟数的场景
返回值
- 返回类型:
uint8_t
返回当前分钟数
| 返回值 | 触发场景 |
|---|---|
| 0 ~ 59 | 当前时钟的分钟值 |
GetCurrentSecond
uint8_t GetCurrentSecond() const
功能说明
- 核心用途:获取时钟当前的秒数
- 设计目的:为外部提供当前时间的秒值读取能力
- 使用场景:需要读取或显示当前秒数的场景
返回值
- 返回类型:
uint8_t
返回当前秒数
| 返回值 | 触发场景 |
|---|---|
| 0 ~ 59 | 当前时钟的秒值 |
IncOneSecond
void IncOneSecond()
功能说明
- 核心用途:将时钟时间递增一秒,自动处理秒/分/时的进位
- 设计目的:为定时器驱动的时钟更新提供单秒递增入口
- 使用场景:定时器回调中以固定间隔调用,驱动时钟时间持续更新
UpdateClock
virtual void UpdateClock(bool clockInit)
功能说明
- 核心用途:更新时钟显示,派生类可重写以实现具体的时钟绘制逻辑
- 设计目的:为时钟显示刷新提供虚函数接口,支持不同类型时钟的自定义更新
- 使用场景:时间变更后触发显示刷新,或时钟首次初始化时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| clockInit | bool | 是否为首次初始化,true 表示首次初始化,false 表示常规更新 | true / false |
SetWorkMode
virtual void SetWorkMode(WorkMode newMode)
功能说明
- 核心用途:设置时钟的工作模式
- 设计目的:提供工作模式切换能力,支持常亮模式与正常刷新模式的切换
- 使用场景:需要在常亮显示与正常时间刷新之间切换的场景
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| newMode | WorkMode | 设置的工作模式 | WorkMode 枚举值 |
GetWorkMode
virtual WorkMode GetWorkMode() const
功能说明
- 核心用途:获取时钟当前的工作模式
- 设计目的:为外部提供当前工作模式的查询能力
- 使用场景:需要判断当前时钟处于常亮模式还是正常刷新模式时调用
返回值
- 返回类型:
WorkMode
返回当前工作模式
| 返回值 | 触发场景 |
|---|---|
| ALWAYS_ON(0) | 时钟处于常亮模式 |
| NORMAL(1) | 时钟处于正常刷新模式 |
Enumerations
WorkMode
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| ALWAYS_ON | 0 | 常亮模式,时钟绘制不随时间变化更新 |
| NORMAL | 1 | 正常模式,时钟绘制随时间变化更新 |