• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# styled_string.h
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @hddgzw-->
5<!--Designer: @pssea-->
6<!--Tester: @jiaoaozihao-->
7<!--Adviser: @HelloCrease-->
8
9## 概述
10
11在Native侧定义ArkUIText组件的文本样式。
12
13**引用文件:** <arkui/styled_string.h>
14
15**库:** libace_ndk.z.so
16
17**系统能力:** SystemCapability.ArkUI.ArkUI.Full
18
19**起始版本:** 12
20
21**相关模块:** [ArkUI_NativeModule](capi-arkui-nativemodule.md)
22
23**相关示例:** <!--RP1-->[StyledStringNDK](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/ArkUISample/StyledStringNDK)<!--RP1End-->
24
25## 汇总
26
27### 结构体
28
29| 名称 | typedef关键字 | 描述 |
30| -- | -- | -- |
31| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md) | ArkUI_StyledString | 定义文本组件支持的格式化字符串数据对象。 |
32
33### 函数
34
35| 名称 | 描述 |
36| -- | -- |
37| [ArkUI_StyledString* OH_ArkUI_StyledString_Create(OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection)](#oh_arkui_styledstring_create) | 创建指向ArkUI_StyledString对象的指针。 |
38| [void OH_ArkUI_StyledString_Destroy(ArkUI_StyledString* handle)](#oh_arkui_styledstring_destroy) | 释放被ArkUI_StyledString对象占据的内存。 |
39| [void OH_ArkUI_StyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_TextStyle* style)](#oh_arkui_styledstring_pushtextstyle) | 将新的排版风格设置到当前格式化字符串样式栈顶。 |
40| [void OH_ArkUI_StyledString_AddText(ArkUI_StyledString* handle, const char* content)](#oh_arkui_styledstring_addtext) | 基于当前格式化字符串样式设置对应的文本内容。 |
41| [void OH_ArkUI_StyledString_PopTextStyle(ArkUI_StyledString* handle)](#oh_arkui_styledstring_poptextstyle) | 将当前格式化字符串对象中栈顶样式出栈。 |
42| [OH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledString* handle)](#oh_arkui_styledstring_createtypography) | 基于格式字符串对象创建指向OH_Drawing_Typography对象的指针,用于提前进行文本测算排版。 |
43| [void OH_ArkUI_StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholder)](#oh_arkui_styledstring_addplaceholder) | 设置占位符。 |
44| [ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_Create(void)](#oh_arkui_styledstring_descriptor_create) | 创建属性字符串数据对象。 |
45| [void OH_ArkUI_StyledString_Descriptor_Destroy(ArkUI_StyledString_Descriptor* descriptor)](#oh_arkui_styledstring_descriptor_destroy) | 释放被ArkUI_StyledString_Descriptor对象占据的内存。 |
46| [int32_t OH_ArkUI_UnmarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor)](#oh_arkui_unmarshallstyledstringdescriptor) | 将包含属性字符串信息的字节数组反序列化为属性字符串。 |
47| [int32_t OH_ArkUI_MarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor, size_t* resultSize)](#oh_arkui_marshallstyledstringdescriptor) | 将属性字符串信息序列化为字节数组。 |
48| [const char* OH_ArkUI_ConvertToHtml(ArkUI_StyledString_Descriptor* descriptor)](#oh_arkui_converttohtml) | 将属性字符串信息转化成html。 |
49
50## 函数说明
51
52### OH_ArkUI_StyledString_Create()
53
54```
55ArkUI_StyledString* OH_ArkUI_StyledString_Create(OH_Drawing_TypographyStyle* style, OH_Drawing_FontCollection* collection)
56```
57
58**描述:**
59
60创建指向ArkUI_StyledString对象的指针。
61
62**起始版本:** 12
63
64**参数:**
65
66| 参数项 | 描述                                                                                                                                                               |
67| -- |------------------------------------------------------------------------------------------------------------------------------------------------------------------|
68| [OH_Drawing_TypographyStyle](../apis-arkgraphics2d/capi-drawing-oh-drawing-typographystyle.md)* style | 指向OH_Drawing_TypographyStyle的指针,由[OH_Drawing_CreateTypographyStyle](../apis-arkgraphics2d/capi-drawing-text-typography-h.md#oh_drawing_createtypographystyle)获取。 |
69| [OH_Drawing_FontCollection](../apis-arkgraphics2d/capi-drawing-oh-drawing-fontcollection.md)* collection | 指向OH_Drawing_FontCollection的指针,由[OH_Drawing_CreateFontCollection](../apis-arkgraphics2d/capi-drawing-font-collection-h.md)获取。                                                                                    |
70
71**返回:**
72
73| 类型                      | 说明 |
74|-------------------------| -- |
75| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* | 创建指向ArkUI_StyledString对象的指针。如果对象返回空指针,表示创建失败,失败的原因是地址空间已满,或者是style,collection参数异常如空指针。 |
76
77### OH_ArkUI_StyledString_Destroy()
78
79```
80void OH_ArkUI_StyledString_Destroy(ArkUI_StyledString* handle)
81```
82
83**描述:**
84
85释放被ArkUI_StyledString对象占据的内存。
86
87**起始版本:** 12
88
89**参数:**
90
91| 参数项 | 描述 |
92| -- | -- |
93| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 |
94
95### OH_ArkUI_StyledString_PushTextStyle()
96
97```
98void OH_ArkUI_StyledString_PushTextStyle(ArkUI_StyledString* handle, OH_Drawing_TextStyle* style)
99```
100
101**描述:**
102
103将新的排版风格设置到当前格式化字符串样式栈顶。
104
105**起始版本:** 12
106
107**参数:**
108
109| 参数项 | 描述 |
110| -- | -- |
111| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 |
112| [OH_Drawing_TextStyle](../apis-arkgraphics2d/capi-drawing-oh-drawing-textstyle.md)* style | 指向OH_Drawing_TextStyle对象的指针。 |
113
114### OH_ArkUI_StyledString_AddText()
115
116```
117void OH_ArkUI_StyledString_AddText(ArkUI_StyledString* handle, const char* content)
118```
119
120**描述:**
121
122基于当前格式化字符串样式设置对应的文本内容。
123
124**起始版本:** 12
125
126**参数:**
127
128| 参数项 | 描述 |
129| -- | -- |
130| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 |
131| const char* content | 指向文本内容的指针。 |
132
133### OH_ArkUI_StyledString_PopTextStyle()
134
135```
136void OH_ArkUI_StyledString_PopTextStyle(ArkUI_StyledString* handle)
137```
138
139**描述:**
140
141将当前格式化字符串对象中栈顶样式出栈。
142
143**起始版本:** 12
144
145**参数:**
146
147| 参数项 | 描述 |
148| -- | -- |
149| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 |
150
151### OH_ArkUI_StyledString_CreateTypography()
152
153```
154OH_Drawing_Typography* OH_ArkUI_StyledString_CreateTypography(ArkUI_StyledString* handle)
155```
156
157**描述:**
158
159基于格式字符串对象创建指向OH_Drawing_Typography对象的指针,用于提前进行文本测算排版。
160
161**起始版本:** 12
162
163**参数:**
164
165| 参数项 | 描述 |
166| -- | -- |
167| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 |
168
169**返回:**
170
171| 类型                         | 说明 |
172|----------------------------| -- |
173| [OH_Drawing_Typography](../apis-arkgraphics2d/capi-drawing-oh-drawing-typography.md)* | 指向OH_Drawing_Typography对象的指针。如果对象返回空指针,表示创建失败,失败的原因可能是handle参数异常如空指针。 |
174
175### OH_ArkUI_StyledString_AddPlaceholder()
176
177```
178void OH_ArkUI_StyledString_AddPlaceholder(ArkUI_StyledString* handle, OH_Drawing_PlaceholderSpan* placeholder)
179```
180
181**描述:**
182
183设置占位符。
184
185**起始版本:** 12
186
187**参数:**
188
189| 参数项 | 描述 |
190| -- | -- |
191| [ArkUI_StyledString](capi-arkui-nativemodule-arkui-styledstring.md)* handle | 指向ArkUI_StyledString对象的指针。 |
192| [OH_Drawing_PlaceholderSpan](../apis-arkgraphics2d/capi-drawing-oh-drawing-placeholderspan.md)* placeholder | 指向OH_Drawing_PlaceholderSpan对象的指针。 |
193
194### OH_ArkUI_StyledString_Descriptor_Create()
195
196```
197ArkUI_StyledString_Descriptor* OH_ArkUI_StyledString_Descriptor_Create(void)
198```
199
200**描述:**
201
202创建属性字符串数据对象。
203
204**起始版本:** 14
205
206**返回:**
207
208| 类型                                 | 说明 |
209|------------------------------------| -- |
210| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* | 指向ArkUI_StyledString_Descriptor对象的指针。 |
211
212### OH_ArkUI_StyledString_Descriptor_Destroy()
213
214```
215void OH_ArkUI_StyledString_Descriptor_Destroy(ArkUI_StyledString_Descriptor* descriptor)
216```
217
218**描述:**
219
220释放被ArkUI_StyledString_Descriptor对象占据的内存。
221
222**起始版本:** 14
223
224**参数:**
225
226| 参数项 | 描述 |
227| -- | -- |
228| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 |
229
230### OH_ArkUI_UnmarshallStyledStringDescriptor()
231
232```
233int32_t OH_ArkUI_UnmarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor)
234```
235
236**描述:**
237
238将包含属性字符串信息的字节数组反序列化为属性字符串。
239
240**起始版本:** 14
241
242**参数:**
243
244| 参数项 | 描述 |
245| -- | -- |
246| uint8_t* buffer | 待反序列化的字节数组。 |
247| size_t bufferSize | 字节数组长度。 |
248| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 |
249
250**返回:**
251
252| 类型 | 说明 |
253| -- | -- |
254| int32_t | 错误码。<br>         [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br>         [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 |
255
256### OH_ArkUI_MarshallStyledStringDescriptor()
257
258```
259int32_t OH_ArkUI_MarshallStyledStringDescriptor(uint8_t* buffer, size_t bufferSize, ArkUI_StyledString_Descriptor* descriptor, size_t* resultSize)
260```
261
262**描述:**
263
264将属性字符串信息序列化为字节数组。
265
266**起始版本:** 14
267
268**参数:**
269
270| 参数项 | 描述 |
271| -- | -- |
272| uint8_t* buffer | 字节数组,用于存储属性字符串序列化后的数据。 |
273| size_t bufferSize | 字节数组长度。 |
274| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 |
275| size_t* resultSize | 属性字符串转换后的字节数组实际长度。 |
276
277**返回:**
278
279| 类型 | 说明 |
280| -- | -- |
281| int32_t | 错误码。<br>        [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br>        [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br>        [ARKUI_ERROR_CODE_INVALID_STYLED_STRING](capi-native-type-h.md#arkui_errorcode) 无效的属性字符串。 |
282
283### OH_ArkUI_ConvertToHtml()
284
285```
286const char* OH_ArkUI_ConvertToHtml(ArkUI_StyledString_Descriptor* descriptor)
287```
288
289**描述:**
290
291将属性字符串信息转化成html。
292
293**起始版本:** 14
294
295**参数:**
296
297| 参数项 | 描述 |
298| -- | -- |
299| [ArkUI_StyledString_Descriptor](capi-arkui-nativemodule-arkui-styledstring-descriptor.md)* descriptor | 指向ArkUI_StyledString_Descriptor对象的指针。 |
300
301**返回:**
302
303| 类型 | 说明 |
304| -- | -- |
305| const char* | html。该指针由内部管理,在OH_ArkUI_StyledString_Descriptor_Destroy()时释放。 |