1# drawing_text_line.h 2 3 4## 概述 5 6提供获取文本行内的字符位置、获取渲染单元信息和按行截断等功能。 7 8**引用文件:** <native_drawing/drawing_text_line.h> 9 10**库:** libnative_drawing.so 11 12**起始版本:** 14 13 14**相关模块:**[Drawing](_drawing.md) 15 16 17## 汇总 18 19 20### 类型定义 21 22| 名称 | 描述 | 23| -------- | -------- | 24| typedef bool(\* [Drawing_CaretOffsetsCallback](_drawing.md#drawing_caretoffsetscallback)) (double offset, int32_t index, bool leadingEdge) | 用户自定义的回调函数。将文本行对象中每个字符的偏移量、索引值作为参数传递给用户自定义的回调函数。 | 25 26 27### 函数 28 29| 名称 | 描述 | 30| -------- | -------- | 31| [OH_Drawing_Array](_drawing.md#oh_drawing_array) \* [OH_Drawing_TypographyGetTextLines](_drawing.md#oh_drawing_typographygettextlines) ([OH_Drawing_Typography](_drawing.md#oh_drawing_typography) \*typography) | 获取排版对象的文本行数组。文本行数组中包含一个或多个文本行对象。 | 32| void [OH_Drawing_DestroyTextLines](_drawing.md#oh_drawing_destroytextlines) ([OH_Drawing_Array](_drawing.md#oh_drawing_array) \*lines) | 释放文本行数组的内存。 | 33| void [OH_Drawing_DestroyTextLine](_drawing.md#oh_drawing_destroytextline) (OH_Drawing_TextLine \*line) | 释放单个文本行对象的内存。只能释放单独申请内存的文本行对象,不能释放文本行数组中的某一个文本行对象的内存。 | 34| OH_Drawing_TextLine \* [OH_Drawing_GetTextLineByIndex](_drawing.md#oh_drawing_gettextlinebyindex) ([OH_Drawing_Array](_drawing.md#oh_drawing_array) \*lines, size_t index) | 获取文本行数组指定索引处的文本行对象。 | 35| double [OH_Drawing_TextLineGetGlyphCount](_drawing.md#oh_drawing_textlinegetglyphcount) (OH_Drawing_TextLine \*line) | 获取文本行对象中字形的数量。 | 36| void [OH_Drawing_TextLineGetTextRange](_drawing.md#oh_drawing_textlinegettextrange) (OH_Drawing_TextLine \*line, size_t \*start, size_t \*end) | 获取文本行对象中的文本在整个段落文本中的索引区间。 | 37| [OH_Drawing_Array](_drawing.md#oh_drawing_array) \* [OH_Drawing_TextLineGetGlyphRuns](_drawing.md#oh_drawing_textlinegetglyphruns) (OH_Drawing_TextLine \*line) | 获取文本行对象中的文本渲染单元数组。 | 38| void [OH_Drawing_DestroyRuns](_drawing.md#oh_drawing_destroyruns) ([OH_Drawing_Array](_drawing.md#oh_drawing_array) \*runs) | 释放文本渲染单元数组的内存。 | 39| OH_Drawing_Run \* [OH_Drawing_GetRunByIndex](_drawing.md#oh_drawing_getrunbyindex) ([OH_Drawing_Array](_drawing.md#oh_drawing_array) \*runs, size_t index) | 获取文本渲染单元数组指定索引处的文本渲染单元对象。 | 40| void [OH_Drawing_TextLinePaint](_drawing.md#oh_drawing_textlinepaint) (OH_Drawing_TextLine \*line, [OH_Drawing_Canvas](_drawing.md#oh_drawing_canvas) \*canvas, double x, double y) | 在画布上以坐标点 (x, y) 为左上角位置绘制文本行。 | 41| OH_Drawing_TextLine \* [OH_Drawing_TextLineCreateTruncatedLine](_drawing.md#oh_drawing_textlinecreatetruncatedline) (OH_Drawing_TextLine \*line, double width, int mode, const char \*ellipsis) | 创建一个截断的文本行对象。 | 42| double [OH_Drawing_TextLineGetTypographicBounds](_drawing.md#oh_drawing_textlinegettypographicbounds) (OH_Drawing_TextLine \*line, double \*ascent, double \*descent, double \*leading) | 获取文本行对象的排版边界。文本行排版边界与排版字体、排版字号有关,与字符本身无关。 例如字符串为" a b ",'a'字符前面有1个空格,'b'字符后面有1个空格,排版边界就包括行首和末尾空格的边界。例如字符串为"j"或"E",排版边界相同,即与字符本身无关。 | 43| [OH_Drawing_Rect](_drawing.md#oh_drawing_rect) \* [OH_Drawing_TextLineGetImageBounds](_drawing.md#oh_drawing_textlinegetimagebounds) (OH_Drawing_TextLine \*line) | 获取文本行对象的图像边界。文本行图像边界与排版字体、排版字号、字符本身都有关,相当于视觉边界。 例如字符串为" a b ",'a'字符前面有1个空格,'b'字符后面有1个空格,用户在界面上只能看到"a b",图像边界即为不包括带行首和末尾空格的边界。 例如字符串为"j"或"E",视觉边界不同,即与字符本身有关,"j"字符串的视觉边界宽度小于"E"字符串的视觉边界宽度,"j"字符串的视觉边界高度大于"E"字符串的视觉边界高度。 | 44| double [OH_Drawing_TextLineGetTrailingSpaceWidth](_drawing.md#oh_drawing_textlinegettrailingspacewidth) (OH_Drawing_TextLine \*line) | 获取文本行对象尾部空白字符的宽度。 | 45| int32_t [OH_Drawing_TextLineGetStringIndexForPosition](_drawing.md#oh_drawing_textlinegetstringindexforposition) (OH_Drawing_TextLine \*line, [OH_Drawing_Point](_drawing.md#oh_drawing_point) \*point) | 获取文本行对象中指定位置处的字符索引。 | 46| double [OH_Drawing_TextLineGetOffsetForStringIndex](_drawing.md#oh_drawing_textlinegetoffsetforstringindex) (OH_Drawing_TextLine \*line, int32_t index) | 获取文本行对象中指定字符串索引处的偏移量。 | 47| void [OH_Drawing_TextLineEnumerateCaretOffsets](_drawing.md#oh_drawing_textlineenumeratecaretoffsets) (OH_Drawing_TextLine \*line, [Drawing_CaretOffsetsCallback](_drawing.md#drawing_caretoffsetscallback) callback) | 枚举文本行对象中每个字符的偏移量和索引值,传递给用户自定义的回调函数,用户可以使用偏移量和索引值进行其他操作。 | 48| double [OH_Drawing_TextLineGetAlignmentOffset](_drawing.md#oh_drawing_textlinegetalignmentoffset) (OH_Drawing_TextLine \*line, double alignmentFactor, double alignmentWidth) | 获取文本行对象根据对齐因子和对齐宽度计算对齐后所需的偏移量。 | 49