文件最后提交记录最后更新时间
HO仓Sample同源 Signed-off-by: wanxiajing <leining3@h-partners.com> 4 个月前
feat(text): 补充CAPI文本引擎指南配套示例代码 NDKComplexText1新增:省略号、断行策略、标点压缩、字体资源路径查询 NDKTextMeasurement新增:限制区域排版、字符位置、字形信息 Co-Authored-By: Agent Signed-off-by: mobHot <hulei100@huawei.com> 1 个月前
refactor(text): 精简文本引擎示例代码,移除字体路径查询示例 Co-Authored-By: Agent Signed-off-by: mobHot <hulei100@huawei.com> 15 天前
feat(text): 补充CAPI文本引擎指南配套示例代码 NDKComplexText1新增:省略号、断行策略、标点压缩、字体资源路径查询 NDKTextMeasurement新增:限制区域排版、字符位置、字形信息 Co-Authored-By: Agent Signed-off-by: mobHot <hulei100@huawei.com> 1 个月前
HO仓Sample同源 Signed-off-by: wanxiajing <leining3@h-partners.com> 4 个月前
refactor(text): 精简文本引擎示例代码,移除字体路径查询示例 Co-Authored-By: Agent Signed-off-by: mobHot <hulei100@huawei.com> 15 天前
refactor(text): 精简文本引擎示例代码,移除字体路径查询示例 Co-Authored-By: Agent Signed-off-by: mobHot <hulei100@huawei.com> 15 天前
HO仓Sample同源 Signed-off-by: wanxiajing <leining3@h-partners.com> 4 个月前
HO仓Sample同源 Signed-off-by: wanxiajing <leining3@h-partners.com> 4 个月前
HO仓Sample同源 Signed-off-by: wanxiajing <leining3@h-partners.com> 4 个月前
refactor(text): 精简文本引擎示例代码,移除字体路径查询示例 Co-Authored-By: Agent Signed-off-by: mobHot <hulei100@huawei.com> 15 天前
HO仓Sample同源 Signed-off-by: wanxiajing <leining3@h-partners.com> 4 个月前
README.md

文本测量中常用接口使用说明(ArkTS)

介绍

本工程主要实现了对以下指南文档中 文本测量 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。

效果预览

使用方法:

  1. 该工程可以选择在模拟器和开发板上运行。
  2. 点击构建,即可在生成的应用中点击对应的按钮进行图案的绘制。
  3. 进入“ArkGraphics2D/TextEngine/TextMetrics/entry/src/ohosTest/ets/test/Ability.test.ets”文件,可以对本项目进行UI的自动化测试。

工程目录

TextMetrics
├──entry/src/main
│  ├──ets  // ets代码区
│  │  ├──entryability
|  |  |  └──EntryAbility.ets        // 程序入口类
|  |  ├──entrybackupability
│  │  │  └──EntryBackupAbility.ets   
│  │  └──pages                      // 页面文件
│  │     └──Index.ets               // 主界面
|  ├──resources         			// 资源文件目录

具体实现

  1. 利用Native XComponent来获取NativeWindow实例、获取布局/事件信息、注册事件回调并通过Drawing API实现在页面上绘制形状。
  2. 通过在IDE中创建Native ArkTS 工程,在ts代码中定义对外接口为drawText,在js侧调用该接口可在页面上绘制出“文本测量测试”文字。
  3. 在XComponent的OnSurfaceCreated回调中获取NativeWindow实例并初始化NativeWindow环境。调用getLongestLine获取段落最长行的宽度,getLongestLineWithIndent获取段落最长行的宽度(该宽度包含当前行缩进的宽度),getTextLines获取当前段落文本行对象数组,getLineMetrics获取段落所有行的度量信息,getLineMetrics(lineNumber: number)获取段落指定行的度量信息。包含行的高度、宽度、起始坐标等信息。超出当前段落排版后最大行数后返回undefined。调用layoutWithConstraints在限定宽高区域内排版文本,获取排版结果(包括实际排版尺寸correctRect和适配的字符串范围fitStrRange)。调用getGlyphPositionAtCoordinate根据坐标获取最接近的字形位置及其亲和度,调用getCharacterPositionAtCoordinate根据坐标获取指定编码类型下的字符位置及其亲和度。调用getCharacterRangeForGlyphRange根据字形范围获取对应的字符范围,调用getGlyphRangeForCharacterRange根据字符范围获取对应的字形范围。

相关权限

无。

依赖

不涉及。

约束和限制

  1. 本示例支持API26版本SDK,版本号:26.0.0。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo ArkGraphics2D/TextEngine/TextMetrics/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/HarmonyOS_Samples/guide-snippets.git
git pull origin master