跳转至

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

enum WorkMode {
    ALWAYS_ON = 0,
    NORMAL = 1,
};
枚举成员 取值 描述
ALWAYS_ON 0 常亮模式,时钟绘制不随时间变化更新
NORMAL 1 正常模式,时钟绘制随时间变化更新