From 79e9df2a52b6fb57721114ad1da1f48ef6d5023a Mon Sep 17 00:00:00 2001 From: qsftw Date: Tue, 1 Jul 2025 11:44:22 +0800 Subject: [PATCH] docs for font feature functions Signed-off-by: qsftw --- .../arkts-apis-graphics-drawing-Canvas.md | 41 +++++++++++++++++++ .../arkts-apis-graphics-drawing-Font.md | 39 ++++++++++++++++++ .../arkts-apis-graphics-drawing-i.md | 12 +++++- 3 files changed, 91 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Canvas.md b/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Canvas.md index 386c8c264b9..dbf982d7a0f 100644 --- a/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Canvas.md +++ b/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Canvas.md @@ -1273,6 +1273,47 @@ class DrawingRenderNode extends RenderNode { } ``` +### drawSingleCharacterWithFeatures20+ + +drawSingleCharacterWithFeatures(text: string, font: Font, x: number, y: number, features: Array): void + +绘制单个字符,字符带有字体特征。当前字型中的字体不支持待绘制字符时,退化到使用系统字体绘制字符。 + +**系统能力:** SystemCapability.Graphics.Drawing + +**参数** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------- | ---- | ----------- | +| text | string | 是 | 待绘制的单个字符,字符串长度必须为1。 | +| font | [Font](arkts-apis-graphics-drawing-Font.md) | 是 | 字型对象。 | +| x | number | 是 | 所绘制字符基线左端点的横坐标,该参数为浮点数。 | +| y | number | 是 | 所绘制字符基线左端点的纵坐标,该参数为浮点数。 | +| features | Array\<[FontFeature](arkts-apis-graphics-drawing-i.md#fontfeature20)\> | 是 | 字体特征对象数组。| + +**示例:** + +```ts +import { RenderNode } from '@kit.ArkUI'; +import { drawing } from '@kit.ArkGraphics2D'; + +class DrawingRenderNode extends RenderNode { + draw(context : DrawContext) { + const canvas = context.canvas; + const brush = new drawing.Brush(); + brush.setColor({alpha: 255, red: 255, green: 0, blue: 0}); + const font = new drawing.Font(); + font.setSize(20); + let fontFeatures : Array = []; + fontFeatures.push({name: 'calt', value: 0}); + canvas.attachBrush(brush); + canvas.drawSingleCharacterWithFeatures("你", font, 100, 100, fontFeatures); + canvas.drawSingleCharacterWithFeatures("好", font, 180, 100, fontFeatures); + canvas.detachBrush(); + } +} +``` + ### drawRegion12+ drawRegion(region: Region): void diff --git a/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Font.md b/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Font.md index e2ee22b42d8..d385293d9f6 100644 --- a/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Font.md +++ b/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-Font.md @@ -495,6 +495,45 @@ class DrawingRenderNode extends RenderNode { } ``` +### measureSingleCharacterWithFeatures20+ + +measureSingleCharacterWithFeatures(text: string, features: Array): number + +测量单个字符的宽度,字符带有字体特征。当前字型中的字体不支持待测量字符时,退化到使用系统字体测量字符宽度。 + +**系统能力:** SystemCapability.Graphics.Drawing + +**参数** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------- | ---- | ----------- | +| text | string | 是 | 待测量的单个字符。字符串长度必须为1。 | +| features | Array\<[FontFeature](arkts-apis-graphics-drawing-i.md#fontfeature20)\> | 是 | 字体特征对象数组。 | + +**返回值:** + +| 类型 | 说明 | +| ------ | ---------------- | +| number | 字符的宽度,浮点数。 | + +**示例:** + +```ts +import { RenderNode } from '@kit.ArkUI'; +import { drawing } from '@kit.ArkGraphics2D'; + +class DrawingRenderNode extends RenderNode { + draw(context : DrawContext) { + const canvas = context.canvas; + const font = new drawing.Font(); + font.setSize(20); + let fontFeatures : Array = []; + fontFeatures.push({name: 'calt', value: 0}); + let width = font.measureSingleCharacterWithFeatures("你", fontFeatures); + } +} +``` + ### setScaleX12+ setScaleX(scaleX: number): void diff --git a/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-i.md b/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-i.md index 43fd69c2d21..ec9b6d6fbc4 100644 --- a/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-i.md +++ b/zh-cn/application-dev/reference/apis-arkgraphics2d/arkts-apis-graphics-drawing-i.md @@ -43,4 +43,14 @@ | underlineThickness12+ | number | 否 | 是 | 下划线的厚度。 | | underlinePosition12+ | number | 否 | 是 | 文本基线到下划线顶部的垂直距离,通常是正数。 | | strikethroughThickness12+ | number | 否 | 是 | 文本删除线的厚度,即贯穿文本字符的水平线的宽度。 | -| strikethroughPosition12+ | number | 否 | 是 | 文本基线到底部删除线的垂直距离,通常为负值。 | \ No newline at end of file +| strikethroughPosition12+ | number | 否 | 是 | 文本基线到底部删除线的垂直距离,通常为负值。 | + +## FontFeature20+ + +字体特征描述字体内置的排版规则,控制字形显示。例如:连字、替代字形、上下标等。 + +**系统能力:** SystemCapability.Graphics.Drawing +| 名称 | 类型 | 只读 | 可选 | 说明 | +| ------- | ------ | ---- | ---- | ------------------ | +| name | string | 否 | 否 | 字体特征的名称。 | +| value | number | 否 | 否 | 字体特征的数值,浮点数。 | \ No newline at end of file -- Gitee