跳转至

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

struct FontParam {
    uint8_t fontSize;
    uint8_t direct;
    char* fontName;
};

成员说明

成员名称 数据类型 描述
fontSize uint8_t 字体字号,从语言资源偏移量中 FONT_SIZE_MASK 字段提取
direct uint8_t 书写方向,从语言资源偏移量中 FONT_DIRECT_MASK 字段提取
fontName char* 字体名称指针,指向文本字符串后的字体名;无字体名时为 nullptr