font_global_manager
font_global_manager 模块提供全局字体管理功能,支持字体的加载、卸载与查询。
Class Summary
OHOS::FontGlobalManager
全局字体与多语言资源管理器,提供语言注册、切换及文本/字体参数查询能力
- 构造:无(单例模式,通过
GetInstance()获取实例) -
成员函数:
接口名称 功能简述 GetText 根据 textId 获取当前语言的文本字符串 RegisterLanguageInfo 通过语言文件路径注册多语言资源信息 RegisterLanguageInfo 通过语言 ID 数组注册多语言资源信息(VERSION_SOCMN2) UnRegisterLanguageInfo 注销已注册的多语言资源信息 SetCurrentLangId 设置当前语言 ID 并刷新界面 GetCurrentLangId 获取当前语言 ID GetFontParam 根据 textId 获取字体参数信息 GetTotalLangId 获取已注册的语言总数 GetInstance 获取 FontGlobalManager 单例实例 -
使用包含头文件:
#include "font/font_global_manager.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/font/font_global_manager.h - 公有运算符:无
- 继承关系:HeapBase
- 嵌套类型:LangChangeListener(语言变更监听器接口类)
- 模板形参:无
Functions
OHOS::FontGlobalManager
GetText
char* GetText(uint16_t textId)
功能说明
- 核心用途:根据文本 ID 获取当前语言对应的文本字符串指针
- 设计目的:为上层 UI 组件提供多语言文本查询能力
- 使用场景:UILabel 等文本控件通过 textId 查询显示内容
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| textId | uint16_t | 目标文本的 ID 编号 | 0 ~ totalStrsNum_-1;INVALID_TEXT_ID(0xFFFF) 为无效值 |
返回值
- 返回类型:
char*
返回文本字符串指针
| 返回值 | 触发场景 |
|---|---|
| 非 nullptr | 查询成功,指向对应文本字符串 |
| nullptr | LangBinInfo 未加载或 textId 越界 |
RegisterLanguageInfo
bool RegisterLanguageInfo(const char** langFile, uint8_t langNum, uint8_t defaultLangId)
功能说明
- 核心用途:通过语言资源文件路径数组注册多语言资源信息,并加载默认语言
- 设计目的:为系统初始化阶段批量注册全部语言资源提供入口
- 使用场景:系统启动时调用,注册全部语言文件并指定默认语言
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| langFile | const char** | 语言资源文件路径数组,每个元素指向一个语言文件路径 | 不为 nullptr,各元素指向合法文件路径 |
| langNum | uint8_t | 注册的语言数量 | 1 ~ 255 |
| defaultLangId | uint8_t | 默认语言 ID | 0 ~ langNum-1 |
返回值
- 返回类型:
bool
返回注册结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 语言资源注册成功且默认语言加载成功 |
| false(0) | langFile 为 nullptr;defaultLangId >= langNum;内存分配失败;默认语言文件加载失败 |
RegisterLanguageInfo
bool RegisterLanguageInfo(uint8_t* langIds, uint8_t langNum, uint8_t defaultLangId)
功能说明
- 核心用途:通过语言 ID 数组注册多语言资源信息(VERSION_SOCMN2 平台),并加载默认语言
- 设计目的:为 VERSION_SOCMN2 平台提供基于资源 ID 的语言注册方式
- 使用场景:VERSION_SOCMN2 平台系统启动时调用,注册语言资源
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| langIds | uint8_t* | 语言资源 ID 数组,每个元素对应一个语言资源标识 | 不为 nullptr |
| langNum | uint8_t | 注册的语言数量 | 1 ~ 255 |
| defaultLangId | uint8_t | 默认语言 ID | 0 ~ langNum-1 |
返回值
- 返回类型:
bool
返回注册结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 语言资源注册成功且默认语言加载成功 |
| false(0) | langIds 为 nullptr;defaultLangId >= langNum;内存分配失败;默认语言资源加载失败 |
Kconfig 配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| VERSION_SOCMN2 | 启用基于语言 ID 的注册接口 | n |
UnRegisterLanguageInfo
void UnRegisterLanguageInfo()
功能说明
- 核心用途:注销已注册的全部多语言资源信息,释放相关内存
- 设计目的:在系统退出或语言资源需要重新加载前,清理已注册的语言数据
- 使用场景:系统关机、语言资源热更新前调用
SetCurrentLangId
void SetCurrentLangId(uint8_t langId)
功能说明
- 核心用途:切换当前语言 ID,加载目标语言资源并刷新界面视图
- 设计目的:提供运行时语言切换能力,自动卸载旧语言资源并加载新语言资源
- 使用场景:用户在设置中切换系统语言时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| langId | uint8_t | 目标语言 ID | 0 ~ langNum_-1;与当前语言 ID 相同时不执行切换 |
GetCurrentLangId
uint8_t GetCurrentLangId() const
功能说明
- 核心用途:获取当前生效的语言 ID
- 设计目的:为上层业务提供当前语言状态查询能力
- 使用场景:界面显示当前语言选项、判断语言是否切换成功
返回值
- 返回类型:
uint8_t
返回当前语言 ID
| 返回值 | 触发场景 |
|---|---|
| 0 ~ langNum_-1 | 已注册语言且已设置当前语言 |
| INVALID_LANG_ID(0xFF) | 尚未注册语言或尚未设置当前语言 |
GetFontParam
FontParam GetFontParam(uint16_t textId)
功能说明
- 核心用途:根据文本 ID 获取对应的字体参数信息(字号、书写方向、字体名称)
- 设计目的:为文本渲染引擎提供逐文本的字体配置查询能力
- 使用场景:UI 控件渲染文本时查询该文本的字体参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| textId | uint16_t | 目标文本的 ID 编号 | 0 ~ totalStrsNum_-1;INVALID_TEXT_ID(0xFFFF) 为无效值 |
返回值
- 返回类型:
FontParam
返回字体参数结构体
| 返回值 | 触发场景 |
|---|---|
| FontParam(正常填充) | LangBinInfo 已加载且 textId 合法 |
| FontParam(fontSize=0,direct=TEXT_DIRECT_MIXED+1,fontName=nullptr) | LangBinInfo 未加载或 textId 越界 |
GetTotalLangId
uint8_t GetTotalLangId()
功能说明
- 核心用途:获取已注册的语言总数
- 设计目的:为上层业务提供语言数量查询能力,用于遍历语言列表
- 使用场景:语言选择界面显示可选语言数量、遍历全部语言资源
返回值
- 返回类型:
uint8_t
返回已注册的语言数量
| 返回值 | 触发场景 |
|---|---|
| 0 | 尚未注册任何语言资源 |
| 1 ~ 255 | 已注册对应数量的语言资源 |
GetInstance
static FontGlobalManager* GetInstance()
功能说明
- 核心用途:获取 FontGlobalManager 的全局单例实例指针
- 设计目的:确保全局唯一的字体管理器实例,所有操作通过同一实例进行
- 使用场景:任何需要调用 FontGlobalManager 接口前,首先通过此方法获取实例
返回值
- 返回类型:
FontGlobalManager*
返回单例实例指针
| 返回值 | 触发场景 |
|---|---|
| 非 nullptr | 始终返回有效的单例实例指针 |
Structures
FontParam
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| fontSize | uint8_t | 字体字号,从语言资源偏移量中 FONT_SIZE_MASK 字段提取 |
| direct | uint8_t | 书写方向,从语言资源偏移量中 FONT_DIRECT_MASK 字段提取 |
| fontName | char* | 字体名称指针,指向文本字符串后的字体名;无字体名时为 nullptr |