• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# drawing_text_line.h
2<!--Kit: ArkGraphics 2D-->
3<!--Subsystem: Graphics-->
4<!--Owner: @oh_wangxk; @gmiao522; @Lem0nC-->
5<!--Designer: @liumingxiang-->
6<!--Tester: @yhl0101-->
7<!--Adviser: @ge-yafang-->
8## 概述
9
10提供获取文本行内的字符位置、获取渲染单元信息和按行截断等功能。
11
12**引用文件:** <native_drawing/drawing_text_line.h>
13
14**库:** libnative_drawing.so
15
16**起始版本:** 18
17
18**相关模块:** [Drawing](capi-drawing.md)
19
20## 汇总
21
22### 函数
23
24| 名称 | typedef关键字 | 描述 |
25| -- | -- | -- |
26| [OH_Drawing_Array* OH_Drawing_TypographyGetTextLines(OH_Drawing_Typography* typography)](#oh_drawing_typographygettextlines) | - | 获取排版对象的文本行数组。文本行数组中包含一个或多个文本行对象。不再需要[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)时,请使用[OH_Drawing_DestroyTextLines](capi-drawing-text-line-h.md#oh_drawing_destroytextlines)接口释放该对象的指针。 |
27| [void OH_Drawing_DestroyTextLines(OH_Drawing_Array* lines)](#oh_drawing_destroytextlines) | - | 释放文本行数组的内存。 |
28| [void OH_Drawing_DestroyTextLine(OH_Drawing_TextLine* line)](#oh_drawing_destroytextline) | - | 释放单个文本行对象的内存。只能释放单独申请内存的文本行对象,不能释放文本行数组中的某一个文本行对象的内存。 |
29| [OH_Drawing_TextLine* OH_Drawing_GetTextLineByIndex(OH_Drawing_Array* lines, size_t index)](#oh_drawing_gettextlinebyindex) | - | 获取文本行数组指定索引处的文本行对象。 |
30| [double OH_Drawing_TextLineGetGlyphCount(OH_Drawing_TextLine* line)](#oh_drawing_textlinegetglyphcount) | - | 获取文本行对象中字形的数量。 |
31| [void OH_Drawing_TextLineGetTextRange(OH_Drawing_TextLine* line, size_t* start, size_t* end)](#oh_drawing_textlinegettextrange) | - | 获取文本行对象中的文本在整个段落文本中的索引区间。 |
32| [OH_Drawing_Array* OH_Drawing_TextLineGetGlyphRuns(OH_Drawing_TextLine* line)](#oh_drawing_textlinegetglyphruns) | - | 获取文本行对象中的文本渲染单元数组。 |
33| [void OH_Drawing_DestroyRuns(OH_Drawing_Array* runs)](#oh_drawing_destroyruns) | - | 释放文本渲染单元数组的内存。 |
34| [OH_Drawing_Run* OH_Drawing_GetRunByIndex(OH_Drawing_Array* runs, size_t index)](#oh_drawing_getrunbyindex) | - | 获取文本渲染单元数组指定索引处的文本渲染单元对象。 |
35| [void OH_Drawing_TextLinePaint(OH_Drawing_TextLine* line, OH_Drawing_Canvas* canvas, double x, double y)](#oh_drawing_textlinepaint) | - | 在画布上以坐标点 (x, y) 为左上角位置绘制文本行。 |
36| [OH_Drawing_TextLine* OH_Drawing_TextLineCreateTruncatedLine(OH_Drawing_TextLine* line, double width, int mode,const char* ellipsis)](#oh_drawing_textlinecreatetruncatedline) | - | 创建一个截断的文本行对象。 |
37| [double OH_Drawing_TextLineGetTypographicBounds(OH_Drawing_TextLine* line, double* ascent, double* descent,double* leading)](#oh_drawing_textlinegettypographicbounds) | - | 获取文本行对象的排版边界。文本行排版边界与排版字体、排版字号有关,与字符本身无关。<br>例如字符串为" a b ",'a'字符前面有1个空格,'b'字符后面有1个空格,排版边界就包括行首和末尾空格的边界。例如字符串为"j"或"E",排版边界相同,即与字符本身无关。 |
38| [OH_Drawing_Rect* OH_Drawing_TextLineGetImageBounds(OH_Drawing_TextLine* line)](#oh_drawing_textlinegetimagebounds) | - | 获取文本行对象的图像边界。文本行图像边界与排版字体、排版字号、字符本身都有关,相当于视觉边界。<br>例如字符串为" a b ",'a'字符前面有1个空格,'b'字符后面有1个空格,用户在界面上只能看到"a b",图像边界即为不包括带行首和末尾空格的边界。<br>例如字符串为"j"或"E",视觉边界不同,即与字符本身有关,"j"字符串的视觉边界宽度小于"E"字符串的视觉边界宽度,"j"字符串的视觉边界高度大于"E"字符串的视觉边界高度。 |
39| [double OH_Drawing_TextLineGetTrailingSpaceWidth(OH_Drawing_TextLine* line)](#oh_drawing_textlinegettrailingspacewidth) | - | 获取文本行对象尾部空白字符的宽度。 |
40| [int32_t OH_Drawing_TextLineGetStringIndexForPosition(OH_Drawing_TextLine* line, OH_Drawing_Point* point)](#oh_drawing_textlinegetstringindexforposition) | - | 获取文本行对象中指定位置处的字符索引。 |
41| [double OH_Drawing_TextLineGetOffsetForStringIndex(OH_Drawing_TextLine* line, int32_t index)](#oh_drawing_textlinegetoffsetforstringindex) | - | 获取文本行对象中指定字符串索引处的偏移量。 |
42| [typedef bool (\*Drawing_CaretOffsetsCallback)(double offset, int32_t index, bool leadingEdge)](#drawing_caretoffsetscallback) | Drawing_CaretOffsetsCallback | 用户自定义的回调函数。将文本行对象中每个字符的偏移量、索引值作为参数传递给用户自定义的回调函数。 |
43| [void OH_Drawing_TextLineEnumerateCaretOffsets(OH_Drawing_TextLine* line, Drawing_CaretOffsetsCallback callback)](#oh_drawing_textlineenumeratecaretoffsets) | - | 枚举文本行对象中每个字符的偏移量和索引值,传递给用户自定义的回调函数,用户可以使用偏移量和索引值进行其他操作。 |
44| [double OH_Drawing_TextLineGetAlignmentOffset(OH_Drawing_TextLine* line, double alignmentFactor, double alignmentWidth)](#oh_drawing_textlinegetalignmentoffset) | - | 获取文本行对象根据对齐因子和对齐宽度计算对齐后所需的偏移量。 |
45
46## 函数说明
47
48### OH_Drawing_TypographyGetTextLines()
49
50```
51OH_Drawing_Array* OH_Drawing_TypographyGetTextLines(OH_Drawing_Typography* typography)
52```
53
54**描述**
55
56获取排版对象的文本行数组。文本行数组中包含一个或多个文本行对象。不再需要[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)时,请使用[OH_Drawing_DestroyTextLines](capi-drawing-text-line-h.md#oh_drawing_destroytextlines)接口释放该对象的指针。
57
58**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
59
60**起始版本:** 18
61
62
63**参数:**
64
65| 参数项 | 描述 |
66| -- | -- |
67| [OH_Drawing_Typography](capi-drawing-oh-drawing-typography.md)* typography | 指向排版对象[OH_Drawing_Typography](capi-drawing-oh-drawing-typography.md)的指针。 |
68
69**返回:**
70
71| 类型 | 说明 |
72| -- | -- |
73| [OH_Drawing_Array](capi-drawing-oh-drawing-array.md)* | 指向文本行数组[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)的指针。 |
74
75### OH_Drawing_DestroyTextLines()
76
77```
78void OH_Drawing_DestroyTextLines(OH_Drawing_Array* lines)
79```
80
81**描述**
82
83释放文本行数组的内存。
84
85**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
86
87**起始版本:** 18
88
89
90**参数:**
91
92| 参数项 | 描述 |
93| -- | -- |
94| [OH_Drawing_Array](capi-drawing-oh-drawing-array.md)* lines | 指向文本行数组[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)的指针。 |
95
96### OH_Drawing_DestroyTextLine()
97
98```
99void OH_Drawing_DestroyTextLine(OH_Drawing_TextLine* line)
100```
101
102**描述**
103
104释放单个文本行对象的内存。只能释放单独申请内存的文本行对象,不能释放文本行数组中的某一个文本行对象的内存。
105
106**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
107
108**起始版本:** 18
109
110
111**参数:**
112
113| 参数项 | 描述 |
114| -- | -- |
115| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
116
117### OH_Drawing_GetTextLineByIndex()
118
119```
120OH_Drawing_TextLine* OH_Drawing_GetTextLineByIndex(OH_Drawing_Array* lines, size_t index)
121```
122
123**描述**
124
125获取文本行数组指定索引处的文本行对象。
126
127**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
128
129**起始版本:** 18
130
131
132**参数:**
133
134| 参数项 | 描述 |
135| -- | -- |
136| [OH_Drawing_Array](capi-drawing-oh-drawing-array.md)* lines | 指向文本行数组[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)的指针。 |
137| size_t index | 指定的文本行数组的索引。 |
138
139**返回:**
140
141| 类型 | 说明 |
142| -- | -- |
143| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* | 指向指定索引处的文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
144
145### OH_Drawing_TextLineGetGlyphCount()
146
147```
148double OH_Drawing_TextLineGetGlyphCount(OH_Drawing_TextLine* line)
149```
150
151**描述**
152
153获取文本行对象中字形的数量。
154
155**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
156
157**起始版本:** 18
158
159
160**参数:**
161
162| 参数项 | 描述 |
163| -- | -- |
164| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
165
166**返回:**
167
168| 类型 | 说明 |
169| -- | -- |
170| double | 文本行对象中字形的数量。 |
171
172### OH_Drawing_TextLineGetTextRange()
173
174```
175void OH_Drawing_TextLineGetTextRange(OH_Drawing_TextLine* line, size_t* start, size_t* end)
176```
177
178**描述**
179
180获取文本行对象中的文本在整个段落文本中的索引区间。
181
182**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
183
184**起始版本:** 18
185
186
187**参数:**
188
189| 参数项 | 描述 |
190| -- | -- |
191| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
192| size_t* start | 指向区间左侧端点索引的指针。 |
193| size_t* end | 指向区间右侧端点索引的指针。 |
194
195### OH_Drawing_TextLineGetGlyphRuns()
196
197```
198OH_Drawing_Array* OH_Drawing_TextLineGetGlyphRuns(OH_Drawing_TextLine* line)
199```
200
201**描述**
202
203获取文本行对象中的文本渲染单元数组。
204
205**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
206
207**起始版本:** 18
208
209
210**参数:**
211
212| 参数项 | 描述 |
213| -- | -- |
214| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
215
216**返回:**
217
218| 类型 | 说明 |
219| -- | -- |
220| [OH_Drawing_Array](capi-drawing-oh-drawing-array.md)* | 指向文本渲染单元[OH_Drawing_Run](capi-drawing-oh-drawing-run.md)数组[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)的指针,不再需要[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)时,请使用[OH_Drawing_DestroyRuns](capi-drawing-text-line-h.md#oh_drawing_destroyruns)释放该对象的指针。 |
221
222### OH_Drawing_DestroyRuns()
223
224```
225void OH_Drawing_DestroyRuns(OH_Drawing_Array* runs)
226```
227
228**描述**
229
230释放文本渲染单元数组的内存。
231
232**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
233
234**起始版本:** 18
235
236
237**参数:**
238
239| 参数项 | 描述 |
240| -- | -- |
241| [OH_Drawing_Array](capi-drawing-oh-drawing-array.md)* runs | 指向文本渲染单元[OH_Drawing_Run](capi-drawing-oh-drawing-run.md)数组[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)的指针。 |
242
243### OH_Drawing_GetRunByIndex()
244
245```
246OH_Drawing_Run* OH_Drawing_GetRunByIndex(OH_Drawing_Array* runs, size_t index)
247```
248
249**描述**
250
251获取文本渲染单元数组指定索引处的文本渲染单元对象。
252
253**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
254
255**起始版本:** 18
256
257
258**参数:**
259
260| 参数项 | 描述 |
261| -- | -- |
262| [OH_Drawing_Array](capi-drawing-oh-drawing-array.md)* runs | 指向文本渲染单元[OH_Drawing_Run](capi-drawing-oh-drawing-run.md)数组[OH_Drawing_Array](capi-drawing-oh-drawing-array.md)的指针。 |
263| size_t index | 文本渲染单元数组的索引。 |
264
265**返回:**
266
267| 类型 | 说明 |
268| -- | -- |
269| [OH_Drawing_Run](capi-drawing-oh-drawing-run.md)* | 指向指定索引处的文本渲染单元对象[OH_Drawing_Run](capi-drawing-oh-drawing-run.md)的指针。 |
270
271### OH_Drawing_TextLinePaint()
272
273```
274void OH_Drawing_TextLinePaint(OH_Drawing_TextLine* line, OH_Drawing_Canvas* canvas, double x, double y)
275```
276
277**描述**
278
279在画布上以坐标点 (x, y) 为左上角位置绘制文本行。
280
281**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
282
283**起始版本:** 18
284
285
286**参数:**
287
288| 参数项 | 描述 |
289| -- | -- |
290| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
291| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向绘制的目标画布[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)。 |
292| double x | 绘制的左上角位置的横坐标,单位为物理像素px。 |
293| double y | 绘制的左上角位置的纵坐标,单位为物理像素px。 |
294
295### OH_Drawing_TextLineCreateTruncatedLine()
296
297```
298OH_Drawing_TextLine* OH_Drawing_TextLineCreateTruncatedLine(OH_Drawing_TextLine* line, double width, int mode,const char* ellipsis)
299```
300
301**描述**
302
303创建一个截断的文本行对象。
304
305**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
306
307**起始版本:** 18
308
309
310**参数:**
311
312| 参数项 | 描述 |
313| -- | -- |
314| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
315| double width | 截断后的行宽度。 |
316| int mode | 截断的类型,取值对应为 [OH_Drawing_EllipsisModal](capi-drawing-text-typography-h.md#oh_drawing_ellipsismodal) 枚举,当前仅支持头部截断ELLIPSIS_MODAL_HEAD和尾部截断ELLIPSIS_MODAL_TAIL。 |
317| const char* ellipsis | 截断的标记字符串。 |
318
319**返回:**
320
321| 类型 | 说明 |
322| -- | -- |
323| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* | 返回指向截断的文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)指针。 |
324
325### OH_Drawing_TextLineGetTypographicBounds()
326
327```
328double OH_Drawing_TextLineGetTypographicBounds(OH_Drawing_TextLine* line, double* ascent, double* descent,double* leading)
329```
330
331**描述**
332
333获取文本行对象的排版边界。文本行排版边界与排版字体、排版字号有关,与字符本身无关。<br>例如字符串为" a b ",'a'字符前面有1个空格,'b'字符后面有1个空格,排版边界就包括行首和末尾空格的边界。例如字符串为"j"或"E",排版边界相同,即与字符本身无关。
334
335**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
336
337**起始版本:** 18
338
339
340**参数:**
341
342| 参数项 | 描述 |
343| -- | -- |
344| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。height = ascent + descent + leading。 |
345| double* ascent | 指向文本行对象上升高度的指针。 |
346| double* descent | 指向文本行对象下降高度的指针。 |
347| double* leading | 指向文本行对象行间距的指针。 |
348
349**返回:**
350
351| 类型 | 说明 |
352| -- | -- |
353| double | 排版边界的总宽度。 |
354
355### OH_Drawing_TextLineGetImageBounds()
356
357```
358OH_Drawing_Rect* OH_Drawing_TextLineGetImageBounds(OH_Drawing_TextLine* line)
359```
360
361**描述**
362
363获取文本行对象的图像边界。文本行图像边界与排版字体、排版字号、字符本身都有关,相当于视觉边界。<br>例如字符串为" a b ",'a'字符前面有1个空格,'b'字符后面有1个空格,用户在界面上只能看到"a b",图像边界即为不包括带行首和末尾空格的边界。<br>例如字符串为"j"或"E",视觉边界不同,即与字符本身有关,"j"字符串的视觉边界宽度小于"E"字符串的视觉边界宽度,"j"字符串的视觉边界高度大于"E"字符串的视觉边界高度。
364
365**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
366
367**起始版本:** 18
368
369
370**参数:**
371
372| 参数项 | 描述 |
373| -- | -- |
374| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
375
376**返回:**
377
378| 类型 | 说明 |
379| -- | -- |
380| [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* | 指向文本行对象的图像边界[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针,不再需要[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)时,请使用[OH_Drawing_RectDestroy](capi-drawing-rect-h.md#oh_drawing_rectdestroy)接口释放该对象的指针。 |
381
382### OH_Drawing_TextLineGetTrailingSpaceWidth()
383
384```
385double OH_Drawing_TextLineGetTrailingSpaceWidth(OH_Drawing_TextLine* line)
386```
387
388**描述**
389
390获取文本行对象尾部空白字符的宽度。
391
392**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
393
394**起始版本:** 18
395
396
397**参数:**
398
399| 参数项 | 描述 |
400| -- | -- |
401| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
402
403**返回:**
404
405| 类型 | 说明 |
406| -- | -- |
407| double | 文本行对象尾部空白字符的宽度。 |
408
409### OH_Drawing_TextLineGetStringIndexForPosition()
410
411```
412int32_t OH_Drawing_TextLineGetStringIndexForPosition(OH_Drawing_TextLine* line, OH_Drawing_Point* point)
413```
414
415**描述**
416
417获取文本行对象中指定位置处的字符索引。
418
419**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
420
421**起始版本:** 18
422
423
424**参数:**
425
426| 参数项 | 描述 |
427| -- | -- |
428| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
429| [OH_Drawing_Point](capi-drawing-oh-drawing-point.md)* point | 指向要查找索引的位置[OH_Drawing_Point](capi-drawing-oh-drawing-point.md)指针。 |
430
431**返回:**
432
433| 类型 | 说明 |
434| -- | -- |
435| int32_t | 指定位置处的字符串索引。例如文本字符串为"abc","a"字符的索引为0,"b"字符的索引为1,"c"字符的索引为2。如果指定的位置在"a"字符处,则返回0。 |
436
437### OH_Drawing_TextLineGetOffsetForStringIndex()
438
439```
440double OH_Drawing_TextLineGetOffsetForStringIndex(OH_Drawing_TextLine* line, int32_t index)
441```
442
443**描述**
444
445获取文本行对象中指定字符串索引处的偏移量。
446
447**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
448
449**起始版本:** 18
450
451
452**参数:**
453
454| 参数项 | 描述 |
455| -- | -- |
456| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
457| int32_t index | 要获取偏移量的字符串索引。 |
458
459**返回:**
460
461| 类型 | 说明 |
462| -- | -- |
463| double | 指定字符串索引处的偏移量。 |
464
465### Drawing_CaretOffsetsCallback()
466
467```
468typedef bool (*Drawing_CaretOffsetsCallback)(double offset, int32_t index, bool leadingEdge)
469```
470
471**描述**
472
473用户自定义的回调函数。将文本行对象中每个字符的偏移量、索引值作为参数传递给用户自定义的回调函数。
474
475**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
476
477**起始版本:** 18
478
479
480**参数:**
481
482| 参数项 | 描述 |
483| -- | -- |
484| double offset | 文本行对象中每个字符的偏移量。 |
485|  int32_t index | 文本行对象中每个字符的索引值。 |
486|  bool leadingEdge | 光标是否位于字符的前缘。true表示位于字符前缘,即偏移量不包含该字符宽度,false表示位于字符后缘,即偏移量包含该字符宽度。 |
487
488**返回:**
489
490| 类型 | 说明 |
491| -- | -- |
492| bool | 表示是否停止调用该回调函数。true表示停止调用该回调函数,false表示继续调用该回调函数。 |
493
494### OH_Drawing_TextLineEnumerateCaretOffsets()
495
496```
497void OH_Drawing_TextLineEnumerateCaretOffsets(OH_Drawing_TextLine* line, Drawing_CaretOffsetsCallback callback)
498```
499
500**描述**
501
502枚举文本行对象中每个字符的偏移量和索引值,传递给用户自定义的回调函数,用户可以使用偏移量和索引值进行其他操作。
503
504**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
505
506**起始版本:** 18
507
508
509**参数:**
510
511| 参数项 | 描述 |
512| -- | -- |
513| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
514| [Drawing_CaretOffsetsCallback](#drawing_caretoffsetscallback) callback | 用户自定义函数[Drawing_CaretOffsetsCallback](capi-drawing-text-line-h.md#drawing_caretoffsetscallback)。 |
515
516### OH_Drawing_TextLineGetAlignmentOffset()
517
518```
519double OH_Drawing_TextLineGetAlignmentOffset(OH_Drawing_TextLine* line, double alignmentFactor, double alignmentWidth)
520```
521
522**描述**
523
524获取文本行对象根据对齐因子和对齐宽度计算对齐后所需的偏移量。
525
526**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
527
528**起始版本:** 18
529
530**参数:**
531
532| 参数项 | 描述 |
533| -- | -- |
534| [OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)* line | 指向文本行对象[OH_Drawing_TextLine](capi-drawing-oh-drawing-textline.md)的指针。 |
535| double alignmentFactor | 对齐因子,即对齐的程度。小于等于0.0表示左对齐,大于0.0小于0.5表示偏左对齐,0.5表示居中对齐,大于0.5小于1.0表示偏右对齐,大于等于1.0表示右对齐。 |
536| double alignmentWidth | 对齐宽度,即最终偏移后的文本行对象右下角相对于起始位置的偏移值。如果指定对齐宽度小于文本行对象的实际宽度,则返回0。 |
537
538**返回:**
539
540| 类型 | 说明 |
541| -- | -- |
542| double | 计算得到的对齐所需偏移量。 |
543
544
545