From fac2afe5fec6fee86942491a8bc415ed6d37a5ad Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 31 Aug 2024 15:22:01 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E9=80=9A=E7=94=A8=E7=9A=84?= =?utf8?q?=E9=85=8D=E7=BD=AE=E7=BB=93=E6=9E=84=E4=BD=93=E5=87=BD=E6=95=B0?= =?utf8?q?=E3=80=82=E5=A2=9E=E5=8A=A0=E9=87=8A=E6=94=BEimageinfo=E7=9B=B8?= =?utf8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../uicomponents/UIComponents.cpp | 319 ++++++++++++++---- .../uicomponents/UIComponents.h | 245 +++++++++++++- 2 files changed, 478 insertions(+), 86 deletions(-) diff --git a/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp b/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp index 6c22e8858..6f248864e 100644 --- a/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp +++ b/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp @@ -1,22 +1,10 @@ -/*** - * @Date: 2024-08-29 19:24:30 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-08-30 18:57:46 - * @FilePath: /FD230/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp - */ -/*** - * @Date: 2024-05-10 10:27:30 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-05-10 11:03:56 - * @FilePath: /sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.cpp - */ - #include "uicomponents/UIComponents.h" #include + namespace OHOS { - // 定义按键颜色宏 +// 定义按键颜色宏 #define DEFAULT_BACKGROUND_COLOR 0xff191919 #define PRESSED_BACKGROUND_COLOR 0xff249115 #define PRESSED_BORDER_COLOR 0xff0b1928 @@ -448,7 +436,241 @@ namespace OHOS { InitLabel(label, x, y, width, height, viewId, text, fontName, fontSize); } - /* -------------------------------------------------------------------------- */ + void InitImageAnimatorSource(UIImageAnimatorView *&imageAnimator, ImageAnimatorInfo *&imageAnimatorInfo, const char **imagePaths, int numFrames, int left, int top, int width, int height, const char *viewId, int time) + { + if (imageAnimator == nullptr) + { + imageAnimator = new UIImageAnimatorView(); + } + imageAnimator->SetPosition(left, top); + imageAnimator->Resize(width, height); + imageAnimator->SetViewId(viewId); + // imageAnimator->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); + imageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + + imageAnimatorInfo = new ImageAnimatorInfo[numFrames]; + for (int i = 0; i < numFrames; i++) + { + imageAnimatorInfo[i].imagePath = imagePaths[i]; + imageAnimatorInfo[i].pos.x = left; + imageAnimatorInfo[i].pos.y = top; + imageAnimatorInfo[i].width = width; + imageAnimatorInfo[i].height = height; + imageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH; + } + + imageAnimator->SetImageAnimatorSrc(imageAnimatorInfo, numFrames, time); // 200 is the default delay time + imageAnimator->SetTimeOfPause(time); + imageAnimator->SetRepeat(true); + } + void ReleaseImageAnimatorSource(ImageAnimatorInfo *&imageAnimatorInfo, int numFrames) + { + if (imageAnimatorInfo) + { + for (int i = 0; i < numFrames; i++) + { + delete[] imageAnimatorInfo[i].imagePath; // 释放每个 imagePath 的内存 + } + delete[] imageAnimatorInfo; // 释放 ImageAnimatorInfo 数组的内存 + imageAnimatorInfo = nullptr; // 避免悬挂指针 + } + } + /* -------------------------------------------------------------------------- */ + // UILabel 初始化 + bool InitUILabel(UILabel *&label, const GeneralConfig &config, const LabelConfig &labelConfig) + { + // 检查标签指针是否为空 + if (label == nullptr) + { + label = new UILabel(); + if (label == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitUILabel is error"); + return false; // 内存分配失败,返回false + } + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitUILabel is not nullptr"); + return false; // 标签已存在,返回false + } + + // 设置标签的位置和大小 + label->SetPosition(config.x, config.y); + label->Resize(config.width, config.height); + // 设置标签的视图 ID + label->SetViewId(config.viewId); + // 设置标签的样式 + label->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize); + label->SetFont(labelConfig.fontName, labelConfig.fontSize); + // 设置标签的文本和其他属性 + label->SetText(labelConfig.text); + label->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + + return true; + } + + // UILabelExt 初始化 + bool InitLabel(UILabelExt *&label, const GeneralConfig &config, const LabelConfig &labelConfig) + { + // 检查标签指针是否为空 + if (label == nullptr) + { + label = new UILabelExt(); + if (label == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is error"); + return false; // 内存分配失败,返回false + } + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is not nullptr"); + return false; // 标签已存在,返回false + } + + // 设置标签的位置和大小 + label->SetPosition(config.x, config.y); + label->Resize(config.width, config.height); + // 设置标签的视图 ID + label->SetViewId(config.viewId); + // 设置标签的样式 + label->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize); + label->SetFont(labelConfig.fontName, labelConfig.fontSize); + // 设置标签的文本和其他属性 + label->SetText(labelConfig.text); + label->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + + return true; + } + + // 自适应 UILabel 初始化 + bool InitLabelAdapt(UILabelExt *&label, const GeneralConfig &config, const LabelConfig &labelConfig) + { + // 检查标签指针是否为空 + if (label == nullptr) + { + label = new UILabelExt(); + if (label == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is error"); + return false; // 内存分配失败,返回false + } + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is not nullptr"); + return false; // 标签已存在,返回false + } + + // 设置标签的位置和大小 + label->SetPosition(config.x, config.y); + label->Resize(config.width, config.height); + // 设置标签的视图 ID + label->SetViewId(config.viewId); + // 设置标签的样式 + label->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize); + label->SetFont(labelConfig.fontName, labelConfig.fontSize); + // 设置标签的文本和其他属性 + label->SetText(labelConfig.text); + label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); // 可以使用剪裁模式 + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + + return true; + } + // UIButton 初始化 + bool InitButton(UIButton *&button, const GeneralConfig &config) + { + // 检查按钮指针是否为空 + if (button == nullptr) + { + button = new UIButton(); + if (button == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButton is error"); + return false; // 内存分配失败,返回false + } + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButton is not nullptr"); + return false; // 按钮已存在,返回false + } + + // 设置按钮的位置和大小 + button->SetPosition(config.x, config.y); + button->Resize(config.width, config.height); + // 设置按钮的视图 ID + button->SetViewId(config.viewId); + + return true; + } + + // UILabelButton 初始化 + bool InitLabelButton(UILabelButton *&button, const GeneralConfig &config, const LabelConfig &labelConfig) + { + // 检查标签按钮指针是否为空 + if (button == nullptr) + { + button = new UILabelButton(); + if (button == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelButton is error"); + return false; // 内存分配失败,返回false + } + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelButton is not nullptr"); + return false; // 标签按钮已存在,返回false + } + + // 设置标签按钮的位置和大小 + button->SetPosition(config.x, config.y); + button->Resize(config.width, config.height); + // 设置标签按钮的视图 ID + button->SetViewId(config.viewId); + // 设置标签按钮的样式 + button->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize); + button->SetFont(labelConfig.fontName, labelConfig.fontSize); + // 设置标签按钮的文本 + button->SetText(labelConfig.text); + + return true; + } + + // UIImageView 初始化 + bool InitImageView(UIImageView *&imageView, const GeneralConfig &config, const char *imagePath) + { + // 检查图片视图指针是否为空 + if (imageView == nullptr) + { + imageView = new UIImageView(); + if (imageView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitImageView is error"); + return false; // 内存分配失败,返回false + } + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitImageView is not nullptr"); + return false; // 图片视图已存在,返回false + } + + // 设置图片视图的位置和大小 + imageView->SetPosition(config.x, config.y); + imageView->Resize(config.width, config.height); + // 设置图片视图的视图 ID + imageView->SetViewId(config.viewId); + // 设置图片的路径 + imageView->SetSrc(imagePath); + + return true; + } + /* -------------------------------------------------------------------------- */ /** * 创建包含图片文件路径的数组 * @param basePath 包含图片文件的基本路径 PullUp_%d.bin @@ -456,19 +678,19 @@ namespace OHOS * @param numImages 图片文件的数量 * @return 返回包含图片文件info的数组 */ - const ImageInfo**CreateImageInfoArray(const char *basePath, int numImages, const char *fileExtension) + const ImageInfo **CreateImageInfoArray(const char *basePath, int numImages, const char *fileExtension) { const ImageInfo **imageinfo_array = static_cast(UIMalloc(numImages * sizeof(const ImageInfo *))); - if(imageinfo_array==nullptr) + if (imageinfo_array == nullptr) { - return nullptr; // 检查内存分配是否成功 + return nullptr; // 检查内存分配是否成功 } - for(int i = 0; i < numImages; i++) + for (int i = 0; i < numImages; i++) { - char buffer[256]={0}; + char buffer[256] = {0}; snprintf(buffer, sizeof(buffer), "%s%d.%s", basePath, i + 1, fileExtension); - imageinfo_array[i]=ImageCacheManager::GetInstance().LoadSingleRes(buffer); - if( imageinfo_array[i]==nullptr) + imageinfo_array[i] = ImageCacheManager::GetInstance().LoadSingleRes(buffer); + if (imageinfo_array[i] == nullptr) { UIFree(imageinfo_array); return nullptr; // 检查内存分配是否成功 @@ -477,16 +699,16 @@ namespace OHOS return imageinfo_array; } - void FreeImageInfoArray( const ImageInfo** array,const char *basePath, int numImages, const char *fileExtension) + void FreeImageInfoArray(const ImageInfo **array, const char *basePath, int numImages, const char *fileExtension) { - for(int i = 0; i < numImages; i++) + for (int i = 0; i < numImages; i++) { - char buffer[256]={0}; + char buffer[256] = {0}; snprintf(buffer, sizeof(buffer), "%s%d.%s", basePath, i + 1, fileExtension); ImageCacheManager::GetInstance().UnloadSingleRes(buffer); } UIFree(array); - return ; + return; } /* -------------------------------------------------------------------------- */ /** @@ -560,49 +782,4 @@ namespace OHOS } return imageArray; } - /** - * @brief 初始化UIImageAnimatorView,并设置为GIF动画。 - * - * 该函数用于使用提供的GIF图像和属性初始化UIImageAnimatorView。 - * - * @param imageAnimator 要初始化的UIImageAnimatorView对象的引用。 - * @param paths GIF图像文件路径的数组。 - * @param numFrames GIF中的帧数。 - * @param left 视图的左侧位置。 - * @param top 视图的顶部位置。 - * @param width 视图的宽度。 - * @param height 视图的高度。 - * @param viewId 视图的ID。 - * @param time 视图的帧速 - * @return 如果初始化成功则返回true,否则返回false。 - */ - void InitImageAnimatorSource(UIImageAnimatorView *&imageAnimator, const char **imagePaths, int numFrames, int left, int top, int width, int height, const char *viewId, int time) - { - if (imageAnimator == nullptr) - { - imageAnimator = new UIImageAnimatorView(); - } - imageAnimator->SetPosition(left, top); - imageAnimator->Resize(width, height); - imageAnimator->SetViewId(viewId); - // imageAnimator->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - imageAnimator->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - - ImageAnimatorInfo *imageAnimatorInfo = new ImageAnimatorInfo[numFrames]; - for (int i = 0; i < numFrames; i++) - { - imageAnimatorInfo[i].imagePath = imagePaths[i]; - imageAnimatorInfo[i].pos.x = left; - imageAnimatorInfo[i].pos.y = top; - imageAnimatorInfo[i].width = width; - imageAnimatorInfo[i].height = height; - imageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH; - } - - imageAnimator->SetImageAnimatorSrc(imageAnimatorInfo, numFrames, time); // 200 is the default delay time - imageAnimator->SetTimeOfPause(time); - imageAnimator->SetRepeat(true); - // imageAnimator->SetReverse(true); - // imageAnimator->SetVisible(true); - } } diff --git a/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.h b/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.h index 86c538514..016b28532 100644 --- a/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.h +++ b/code/sdk/application/wearable/CustomUIComponentTool/uicomponents/UIComponents.h @@ -1,5 +1,3 @@ - - #ifndef UICOMPONENTS_H #define UICOMPONENTS_H @@ -33,7 +31,7 @@ namespace OHOS { - + /* -------------------------------------------------------------------------- */ // 初始化和创建 UI 组件 // ======================= /* 初始化 UILabel */ @@ -58,33 +56,250 @@ namespace OHOS // 默认参数的 UILabel 初始化 void InitLabelDefault(UILabelExt *&label, int x, int y, int width, int height, const char *viewId, const char *text, int fontSize = 30, const char *fontName = DEFAULT_VECTOR_FONT_FILENAME); - /*生成动画资源数组*/ + bool InitLabelExt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, const char *fontName, int fontSize); + bool InitButtonExt(UILabelButtonExt *&button, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, int fontSize); + + void InitImageAnimatorSource(UIImageAnimatorView *&imageAnimator, ImageAnimatorInfo *&imageAnimatorInfo, const char **imagePaths, int numFrames, int left, int top, int width, int height, const char *viewId, int time); + + void FreeImageInfoArray(const ImageInfo **array, const char *basePath, int numImages, const char *fileExtension = "bin"); + + // 更新 Label 的文本 + /* -------------------------------------------------------------------------- */ + /* -------------------------------------------------------------------------- */ + // 封装位置和尺寸信息的结构体 + struct GeneralConfig + { + int x, y, width, height; // 位置和尺寸 + const char *viewId; // 视图 ID + + // 构造函数,允许初始化默认值 + GeneralConfig(int x = 0, int y = 0, int width = 100, int height = 100, const char *viewId = "defaultId") + : x(x), y(y), width(width), height(height), viewId(viewId) {} + }; + + // 封装动画相关配置 + struct ImageAnimatorConfig + { + const char **imagePaths; // 图像路径数组 + int numFrames; // 帧数 + int time; // 动画时间 + + // 构造函数,允许初始化默认值 + ImageAnimatorConfig(const char **paths = nullptr, int frames = 0, int time = 100) + : imagePaths(paths), numFrames(frames), time(time) {} + }; + + // 封装标签相关配置 + struct LabelConfig + { + const char *text; // 标签文本 + const char *fontName; // 字体名称 + int fontSize; // 字体大小 + + // 构造函数,允许初始化默认值 + LabelConfig(const char *text = "", const char *fontName = DEFAULT_VECTOR_FONT_FILENAME, int fontSize = 30) + : text(text), fontName(fontName), fontSize(fontSize) {} + }; + + // 初始化和创建 UI 组件 + // ======================= + + /** + * @brief 初始化 UILabel 对象。 + * + * 此函数检查传入的 UILabel 指针是否为空,若为空则分配内存并设置其相关属性。 + * + * @param label 要初始化的 UILabel 对象的引用。 + * @param config 带有位置、尺寸和视图 ID 的配置。 + * @param labelConfig 标签的样式和文本配置。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitUILabel(UILabel *&label, const GeneralConfig &config, const LabelConfig &labelConfig); + + /** + * @brief 初始化 UILabelExt 对象。 + * + * 与 InitUILabel 类似,但用于扩展的 UILabel。 + * + * @param label 要初始化的 UILabelExt 对象的引用。 + * @param config 配置参数。 + * @param labelConfig 标签的样式和文本配置。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitLabel(UILabelExt *&label, const GeneralConfig &config, const LabelConfig &labelConfig); + + /** + * @brief 初始化可自适应的 UILabelExt 对象。 + * + * @param label 要初始化的 UILabelExt 对象的引用。 + * @param config 配置参数。 + * @param labelConfig 标签的样式和文本配置。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitLabelAdapt(UILabelExt *&label, const GeneralConfig &config, const LabelConfig &labelConfig); + + /** + * @brief 初始化 UIButton 对象。 + * + * 此函数将创建 UIButton,并设置其位置、大小和视图 ID。 + * + * @param button 要初始化的 UIButton 对象的引用。 + * @param config 配置参数(位置、大小、视图 ID)。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitButton(UIButton *&button, const GeneralConfig &config); + + /** + * @brief 初始化 UILabelButton 对象。 + * + * 这个函数将创建 UILabelButton,设置它的文本、位置和样式。 + * + * @param button 要初始化的 UILabelButton 对象的引用。 + * @param config 配置参数。 + * @param labelConfig 标签样式和文本配置。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitLabelButton(UILabelButton *&button, const GeneralConfig &config, const LabelConfig &labelConfig); + + /** + * @brief 初始化 UIImageView 对象。 + * + * 初始化UIImageView并设置位置、大小和视图 ID,同时加载图像。 + * + * @param imageView 要初始化的 UIImageView 对象的引用。 + * @param config 配置参数。 + * @param imagePath 图像路径。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitImageView(UIImageView *&imageView, const GeneralConfig &config, const char *imagePath); + + // 动画资源数组生成 + // ======================= + + /** + * @brief 创建动态图像路径数组。 + * + * 根据给定路径、数量和文件扩展名生成图像路径数组。 + * + * @param basePath 基础路径。 + * @param numImages 图像数量。 + * @param fileExtension 文件扩展名(默认 "bin")。 + * @return const char** 动态分配的图像路径数组。 + */ const char **CreateImagePathsArray(const char *basePath, int numImages, const char *fileExtension = "bin"); - /*生成动画资源结构体*/ - const ImageInfo**CreateImageInfoArray(const char *basePath, int numImages, const char *fileExtension = "bin"); - void FreeImageInfoArray( const ImageInfo** array,const char *basePath, int numImages, const char *fileExtension = "bin"); + /** + * @brief 创建图像信息数组。 + * + * 根据路径和数量生成图像信息数组。 + * + * @param basePath 基础路径。 + * @param numImages 图像数量。 + * @param fileExtension 文件扩展名(默认 "bin")。 + * @return const ImageInfo** 动态分配的图像信息数组。 + */ + const ImageInfo **CreateImageInfoArray(const char *basePath, int numImages, const char *fileExtension = "bin"); + + /** + * @brief 释放图像信息数组。 + * + * 释放由 CreateImageInfoArray 创建的图像信息数组的内存。 + * + * @param array 要释放的图像信息数组。 + * @param numImages 数组长度。 + */ + void FreeImageInfoArray(const ImageInfo **array, int numImages); - /*释放动画资源数组*/ + /** + * @brief 释放图像路径数组。 + * + * 释放由 CreateImagePathsArray 创建的图像路径数组的内存。 + * + * @param imagePaths 要释放的图像路径数组。 + * @param numImages 数组长度。 + */ void FreeImagePathsArray(const char **imagePaths, int numImages); - /*初始化动画资源*/ - void InitImageAnimatorSource(UIImageAnimatorView *&imageAnimator, const char **imagePaths, int numFrames, int left, int top, int width, int height, const char *viewId, int time); + /** + * @brief 初始化 UIImageAnimatorView,并设置为 GIF 动画。 + * + * @param imageAnimator 初始化的 UIImageAnimatorView 对象的引用。 + * @param imageAnimatorInfo 储存 GIF 动画信息的数组指针。 + * @param config 动画相关的配置(包括路径和帧信息)。 + * @param generalConfig 视图的基本配置(位置、大小、视图 ID 等)。 + */ + void InitImageAnimatorSource(UIImageAnimatorView *&imageAnimator, ImageAnimatorInfo *&imageAnimatorInfo, const ImageAnimatorConfig &config, const GeneralConfig &generalConfig); + + /** + * @brief 释放 UIImageAnimatorView 的资源。 + * + * @param imageAnimatorInfo 要释放的动画信息。 + */ + void ReleaseImageAnimatorSource(ImageAnimatorInfo *&imageAnimatorInfo, int numFrames); #ifdef FD230 // 扩展功能 // ======================= - bool InitLabelExt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, const char *fontName, int fontSize); - bool InitButtonExt(UILabelButtonExt *&button, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, int fontSize); + /** + * @brief 初始化带扩展功能的 UILabelExt 对象。 + * + * @param label 要初始化的 UILabelExt 对象的引用。 + * @param config 配置参数。 + * @param id 资源文本 ID。 + * @param labelConfig 标签样式和文本配置。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitLabelExt(UILabelExt *&label, const GeneralConfig &config, UIResourceTextId id, const LabelConfig &labelConfig); - // 更新 Label 的文本 + /** + * @brief 初始化带扩展功能的 UILabelButtonExt 对象。 + * + * @param button 要初始化的 UILabelButtonExt 对象的引用。 + * @param config 配置参数。 + * @param id 资源文本 ID。 + * @param fontSize 字体大小。 + * @return true 初始化成功;false 创建失败。 + */ + bool InitButtonExt(UILabelButtonExt *&button, const GeneralConfig &config, UIResourceTextId id, int fontSize); + + /** + * @brief 更新 UILabelExt 对象的文本。 + * + * @param label 要更新的 UILabelExt 对象的引用。 + * @param newText 新的文本。 + * @param id 资源文本 ID。 + * @return std::string 更新后的文本。 + */ std::string UpdateLabelText(UILabelExt *&label, const std::string &newText, UIResourceTextId id); + + /** + * @brief 更新 UILabelExt 对象的文本,允许数字。 + * + * @param label 要更新的 UILabelExt 对象的引用。 + * @param num 需要更新的数字。 + * @param id 资源文本 ID。 + * @return std::string 更新后的文本。 + */ std::string UpdateLabel(UILabelExt *&label, int num, UIResourceTextId id); + + /** + * @brief 更新 UILabelExt 对象的文本,允许字符串更新。 + * + * @param label 要更新的 UILabelExt 对象的引用。 + * @param updatestr 需要更新的字符串。 + * @param id 资源文本 ID。 + * @return std::string 更新后的文本。 + */ std::string UpdateLabel(UILabelExt *&label, const std::string &updatestr, UIResourceTextId id); - // 设置 Label ID + /** + * @brief 设置 UILabel 的 ID。 + * + * @param label 要设置 ID 的 UILabel 对象的引用。 + * @param id 资源文本 ID。 + */ void SetLabelId(UILabel *&label, UIResourceTextId id); -#endif // FD230 +#endif } // namespace OHOS -- 2.17.1