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