1# SymbolGlyph
2
3显示图标小符号的组件。
4
5>  **说明:**
6>
7>  该组件从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## 子组件
10
11不支持子组件。
12
13## 接口
14
15SymbolGlyph(value?: Resource)
16
17**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
18
19**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
20
21**系统能力:** SystemCapability.ArkUI.ArkUI.Full
22
23**参数:**
24
25| 参数名 | 类型 | 必填 | 说明 |
26| -------- | -------- | -------- | -------- |
27| value | [Resource](ts-types.md#resource)| 否 | SymbolGlyph组件的资源名,如 $r('sys.symbol.ohos_wifi')。 |
28
29>  **说明:**
30>
31>  $r('sys.symbol.ohos_wifi')中引用的资源为系统预置,SymbolGlyph仅支持系统预置的symbol资源名,引用非symbol资源将显示异常。
32
33## 属性
34
35支持[通用属性](ts-universal-attributes-size.md),不支持文本通用属性,仅支持以下特有属性:
36
37### fontColor
38
39fontColor(value: Array<ResourceColor>)
40
41设置SymbolGlyph组件颜色。
42
43**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
44
45**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
46
47**系统能力:** SystemCapability.ArkUI.ArkUI.Full
48
49**参数:**
50
51| 参数名 | 类型 | 必填 | 说明  |
52| ------ | ---- | ---- | ----- |
53| value  | Array\<[ResourceColor](ts-types.md#resourcecolor)\> | 是   | SymbolGlyph组件颜色。<br/> 默认值:不同渲染策略下默认值不同。 |
54
55### fontSize
56
57fontSize(value: number | string | Resource)
58
59设置SymbolGlyph组件大小。
60
61组件的图标显示大小由fontSize控制,设置width或height后,其他通用属性仅对组件的占位大小生效。
62
63**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
64
65**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
66
67**系统能力:** SystemCapability.ArkUI.ArkUI.Full
68
69**参数:**
70
71| 参数名 | 类型 | 必填 | 说明  |
72| ------ | ---- | ---- | ----- |
73| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | SymbolGlyph组件大小。<br/>默认值:系统默认值。 |
74
75### fontWeight
76
77fontWeight(value: number | FontWeight | string)
78
79设置SymbolGlyph组件粗细。number类型取值[100,900],取值间隔为100,默认为400,取值越大,字体越粗。string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular” 、“medium”分别对应FontWeight中相应的枚举值。
80
81sys.symbol.ohos_lungs图标不支持设置fontWeight。
82
83**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
84
85**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
86
87**系统能力:** SystemCapability.ArkUI.ArkUI.Full
88
89**参数:**
90
91| 参数名 | 类型                                                         | 必填 | 说明                                                |
92| ------ | ------------------------------------------------------------ | ---- | --------------------------------------------------- |
93| value  | number&nbsp;\|&nbsp;[FontWeight](ts-appendix-enums.md#fontweight)&nbsp;\|&nbsp;string | 是   | SymbolGlyph组件粗细。<br/>默认值:FontWeight.Normal |
94
95### renderingStrategy
96
97renderingStrategy(value: SymbolRenderingStrategy)
98
99设置SymbolGlyph组件渲染策略。
100
101**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
102
103**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
104
105**系统能力:** SystemCapability.ArkUI.ArkUI.Full
106
107**参数:**
108
109| 参数名 | 类型 | 必填 | 说明  |
110| ------ | ---- | ---- | ----- |
111| value  | [SymbolRenderingStrategy](#symbolrenderingstrategy11枚举说明) | 是   | SymbolGlyph组件渲染策略。<br/>默认值:SymbolRenderingStrategy.SINGLE |
112
113不同渲染策略效果可参考以下示意图。
114
115![renderingStrategy](figures/renderingStrategy.png)
116
117### effectStrategy
118
119effectStrategy(value: SymbolEffectStrategy)
120
121设置SymbolGlyph组件动效策略。
122
123**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
124
125**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
126
127**系统能力:** SystemCapability.ArkUI.ArkUI.Full
128
129**参数:**
130
131| 参数名 | 类型 | 必填 | 说明  |
132| ------ | ---- | ---- | ----- |
133| value  | [SymbolEffectStrategy](#symboleffectstrategy11枚举说明) | 是   | SymbolGlyph组件动效策略。<br/>默认值:SymbolEffectStrategy.NONE |
134
135### symbolEffect<sup>12+</sup>
136
137symbolEffect(symbolEffect: SymbolEffect, isActive?: boolean)
138
139设置SymbolGlyph组件动效策略及播放状态。
140
141**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
142
143**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
144
145**系统能力:** SystemCapability.ArkUI.ArkUI.Full
146
147**参数:**
148
149| 参数名 | 类型 | 必填 | 说明  |
150| ------ | ---- | ---- | ----- |
151| symbolEffect  | [SymbolEffect](#symboleffect12对象说明) | 是   | SymbolGlyph组件动效策略。<br/>默认值:[SymbolEffect](#symboleffect12对象说明) |
152| isActive  | boolean | 否   | SymbolGlyph组件动效播放状态。<br/>默认值:false |
153
154### symbolEffect<sup>12+</sup>
155
156symbolEffect(symbolEffect: SymbolEffect, triggerValue?: number)
157
158设置SymbolGlyph组件动效策略及播放触发器。
159
160**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
161
162**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
163
164**系统能力:** SystemCapability.ArkUI.ArkUI.Full
165
166**参数:**
167
168| 参数名 | 类型 | 必填 | 说明  |
169| ------ | ---- | ---- | ----- |
170| symbolEffect | [SymbolEffect](#symboleffect12对象说明) | 是   | SymbolGlyph组件动效策略。<br/>默认值:[SymbolEffect](#symboleffect12对象说明) |
171| triggerValue | number | 否   | SymbolGlyph组件动效播放触发器,在数值变更时触发动效。<br/>如果首次不希望触发动效,设置-1。 |
172
173>  **说明:**
174>
175>  动效属性,仅支持使用effectStrategy属性或单个symbolEffect属性,不支持多种动效属性混合使用。
176
177## SymbolEffect<sup>12+</sup>对象说明
178
179定义SymbolEffect类。
180
181**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
182
183**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
184
185**系统能力:** SystemCapability.ArkUI.ArkUI.Full
186
187## ScaleSymbolEffect<sup>12+</sup>
188
189ScaleSymbolEffect继承自父类SymbolEffect。
190
191**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
192
193**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
194
195**系统能力:** SystemCapability.ArkUI.ArkUI.Full
196
197### 属性
198
199| 名称 | 类型 | 必填 | 说明  |
200| ---- | ---- | ---- | ---- |
201| scope     | [EffectScope](#effectscope12枚举说明)  |  否   | 动效范围。<br/>默认值:EffectScope.LAYER    |
202| direction | [EffectDirection](#effectdirection12枚举说明) |  否   | 动效方向。<br/>默认值:EffectDirection.DOWN |
203
204### constructor<sup>12+</sup>
205
206constructor(scope?: EffectScope, direction?: EffectDirection)
207
208ScaleSymbolEffect的构造函数,缩放动效。
209
210**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
211
212**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
213
214**系统能力:** SystemCapability.ArkUI.ArkUI.Full
215
216**参数:**
217
218| 参数名 | 类型 | 必填 | 说明  |
219| ---- | ---- | ---- | ---- |
220| scope     | [EffectScope](#effectscope12枚举说明)         | 否   | 动效范围。<br/>默认值:EffectScope.LAYER    |
221| direction | [EffectDirection](#effectdirection12枚举说明) | 否   | 动效方向。<br/>默认值:EffectDirection.DOWN |
222
223## HierarchicalSymbolEffect<sup>12+</sup>
224
225HierarchicalSymbolEffect继承自父类SymbolEffect。
226
227**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
228
229**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
230
231**系统能力:** SystemCapability.ArkUI.ArkUI.Full
232
233### 属性
234
235| 名称 | 类型 | 必填 | 说明  |
236| ---- | ---- | ---- | ---- |
237| fillStyle | [EffectFillStyle](#effectfillstyle12枚举说明) | 否   | 动效模式。<br/>默认值:EffectFillStyle.CUMULATIVE |
238
239### constructor<sup>12+</sup>
240
241constructor(fillStyle?: EffectFillStyle)
242
243HierarchicalSymbolEffect的构造函数,层级动效。
244
245**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
246
247**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
248
249**系统能力:** SystemCapability.ArkUI.ArkUI.Full
250
251**参数:**
252
253| 参数名 | 类型 | 必填 | 说明  |
254| ---- | ---- | ---- | ---- |
255| fillStyle | [EffectFillStyle](#effectfillstyle12枚举说明) | 否   | 动效模式。<br/>默认值:EffectFillStyle.CUMULATIVE |
256
257## AppearSymbolEffect<sup>12+</sup>
258
259AppearSymbolEffect继承自父类SymbolEffect。
260
261**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
262
263**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
264
265**系统能力:** SystemCapability.ArkUI.ArkUI.Full
266
267### 属性
268
269| 名称 | 类型 | 必填 | 说明  |
270| ---- | ---- | ---- | ---- |
271| scope | [EffectScope](#effectscope12枚举说明) | 否   | 动效范围。<br/>默认值:EffectScope.LAYER |
272
273### constructor<sup>12+</sup>
274
275constructor(scope?: EffectScope)
276
277AppearSymbolEffect的构造函数,出现动效。
278
279**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
280
281**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
282
283**系统能力:** SystemCapability.ArkUI.ArkUI.Full
284
285**参数:**
286
287| 参数名 | 类型 | 必填 | 说明  |
288| ---- | ---- | ---- | ---- |
289| scope  | [EffectScope](#effectscope12枚举说明) | 否   | 动效范围。<br/>默认值:EffectScope.LAYER |
290
291## DisappearSymbolEffect<sup>12+</sup>
292
293DisappearSymbolEffect继承自父类SymbolEffect。
294
295**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
296
297**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
298
299**系统能力:** SystemCapability.ArkUI.ArkUI.Full
300
301### 属性
302
303| 名称 | 类型 | 必填 | 说明  |
304| ---- | ---- | ---- | ---- |
305| scope | [EffectScope](#effectscope12枚举说明) | 否   | 动效范围。<br/>默认值:EffectScope.LAYER |
306
307### constructor<sup>12+</sup>
308
309constructor(scope?: EffectScope)
310
311DisappearSymbolEffect的构造函数,消失动效。
312
313**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
314
315**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
316
317**系统能力:** SystemCapability.ArkUI.ArkUI.Full
318
319**参数:**
320
321| 参数名 | 类型 | 必填 | 说明  |
322| ---- | ---- | ---- | ---- |
323| scope  | [EffectScope](#effectscope12枚举说明) | 否   | 动效范围。<br/>默认值:EffectScope.LAYER |
324
325## BounceSymbolEffect<sup>12+</sup>
326
327BounceSymbolEffect继承自父类SymbolEffect。
328
329**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
330
331**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
332
333**系统能力:** SystemCapability.ArkUI.ArkUI.Full
334
335### 属性
336
337| 名称 | 类型 | 必填 | 说明  |
338| ---- | ---- | ---- | ---- |
339| scope     | [EffectScope](#effectscope12枚举说明)         | 否   | 动效范围。<br/>默认值:EffectScope.LAYER    |
340| direction | [EffectDirection](#effectdirection12枚举说明) | 否   | 动效方向。<br/>默认值:EffectDirection.DOWN |
341
342### constructor<sup>12+</sup>
343
344constructor(scope?: EffectScope, direction?: EffectDirection)
345
346BounceSymbolEffect的构造函数,弹跳动效。
347
348**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
349
350**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
351
352**系统能力:** SystemCapability.ArkUI.ArkUI.Full
353
354**参数:**
355
356| 参数名 | 类型 | 必填 | 说明  |
357| ---- | ---- | ---- | ---- |
358| scope     | [EffectScope](#effectscope12枚举说明)         | 否   | 动效范围。<br/>默认值:EffectScope.LAYER    |
359| direction | [EffectDirection](#effectdirection12枚举说明) | 否   | 动效方向。<br/>默认值:EffectDirection.DOWN |
360
361## ReplaceSymbolEffect<sup>12+</sup>
362
363ReplaceSymbolEffect继承自父类SymbolEffect。
364
365**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
366
367**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
368
369**系统能力:** SystemCapability.ArkUI.ArkUI.Full
370
371### 属性
372
373| 名称 | 类型 | 必填 | 说明  |
374| ---- | ---- | ---- | ---- |
375| scope | [EffectScope](#effectscope12枚举说明) | 否   | 动效范围。<br/>默认值:EffectScope.LAYER |
376
377### constructor<sup>12+</sup>
378
379constructor(scope?: EffectScope)
380
381ReplaceSymbolEffect的构造函数,替换动效。
382
383**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
384
385**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
386
387**系统能力:** SystemCapability.ArkUI.ArkUI.Full
388
389**参数:**
390
391| 参数名 | 类型 | 必填 | 说明  |
392| ---- | ---- | ---- | ---- |
393| scope  | [EffectScope](#effectscope12枚举说明) | 否   | 动效范围。<br/>默认值:EffectScope.LAYER |
394
395## PulseSymbolEffect<sup>12+</sup>对象说明
396
397PulseSymbolEffect的构造函数,脉冲动效。
398
399**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
400
401**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
402
403**系统能力:** SystemCapability.ArkUI.ArkUI.Full
404
405## EffectDirection<sup>12+</sup>枚举说明
406
407**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
408
409**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
410
411**系统能力:** SystemCapability.ArkUI.ArkUI.Full
412
413| 名称 | 值   | 说明             |
414| ---- | ---- | ---------------- |
415| DOWN | 0    | 图标缩小再复原。 |
416| UP   | 1    | 图标放大再复原。 |
417
418## EffectScope<sup>12+</sup>枚举说明
419
420**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
421
422**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
423
424**系统能力:** SystemCapability.ArkUI.ArkUI.Full
425
426| 名称  | 值   | 说明       |
427| ----- | ---- | ---------- |
428| LAYER | 0    | 分层模式。 |
429| WHOLE | 1    | 整体模式。 |
430
431## EffectFillStyle<sup>12+</sup>枚举说明
432
433**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
434
435**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
436
437**系统能力:** SystemCapability.ArkUI.ArkUI.Full
438
439| 名称       | 值   | 说明       |
440| ---------- | ---- | ---------- |
441| CUMULATIVE | 0    | 累加模式。 |
442| ITERATIVE  | 1    | 迭代模式。 |
443
444## SymbolEffectStrategy<sup>11+</sup>枚举说明
445
446动效类型的枚举值。设置动效后启动即生效,无需触发。
447
448**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
449
450**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
451
452**系统能力:** SystemCapability.ArkUI.ArkUI.Full
453
454| 名称     | 说明                          |
455| ------ | ----------------------------- |
456| NONE | 无动效(默认值)。 |
457| SCALE | 整体缩放动效。                 |
458|  HIERARCHICAL  | 层级动效。  |
459
460## SymbolRenderingStrategy<sup>11+</sup>枚举说明
461
462渲染模式的枚举值。
463
464**卡片能力:** 从API version 12开始,该接口支持在ArkTS卡片中使用。
465
466**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
467
468**系统能力:** SystemCapability.ArkUI.ArkUI.Full
469
470| 名称     | 说明                          |
471| ------ | ----------------------------- |
472| SINGLE  | 单色模式(默认值)。<br/> 默认为黑色,可以设置一个颜色。<br/> 当用户设置多个颜色时,仅生效第一个颜色。 |
473| MULTIPLE_COLOR  |  多色模式。<br/> 最多可以设置三个颜色。当用户只设置一个颜色时,修改第一层颜色,其他颜色保持默认颜色。<br/> 颜色设置顺序与图标分层顺序匹配,当颜色数量大于图标分层时,多余的颜色不生效。<br/> 仅支持设置颜色,不透明度设置不生效。|
474|  MULTIPLE_OPACITY   | 分层模式。<br/> 默认为黑色,可以设置一个颜色。当用户设置多个颜色时,仅生效第一个颜色。<br/> 不透明度与图层相关,第一层100%、第二层50%、第三层20%。  |
475
476## 事件
477
478支持[通用事件](ts-universal-events-click.md)。
479
480## 示例
481
482###  示例1(设置渲染和动效策略)
483
484该示例通过renderingStrategy、effectStrategy属性展示了不同的渲染和动效策略。
485
486```ts
487// xxx.ets
488@Entry
489@Component
490struct Index {
491  build() {
492    Column() {
493      Row() {
494        Column() {
495          Text("Light")
496          SymbolGlyph($r('sys.symbol.ohos_trash'))
497            .fontWeight(FontWeight.Lighter)
498            .fontSize(96)
499        }
500
501        Column() {
502          Text("Normal")
503          SymbolGlyph($r('sys.symbol.ohos_trash'))
504            .fontWeight(FontWeight.Normal)
505            .fontSize(96)
506        }
507
508        Column() {
509          Text("Bold")
510          SymbolGlyph($r('sys.symbol.ohos_trash'))
511            .fontWeight(FontWeight.Bold)
512            .fontSize(96)
513        }
514      }
515
516      Row() {
517        Column() {
518          Text("单色")
519          SymbolGlyph($r('sys.symbol.ohos_folder_badge_plus'))
520            .fontSize(96)
521            .renderingStrategy(SymbolRenderingStrategy.SINGLE)
522            .fontColor([Color.Black, Color.Green, Color.White])
523        }
524
525        Column() {
526          Text("多色")
527          SymbolGlyph($r('sys.symbol.ohos_folder_badge_plus'))
528            .fontSize(96)
529            .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR)
530            .fontColor([Color.Black, Color.Green, Color.White])
531        }
532
533        Column() {
534          Text("分层")
535          SymbolGlyph($r('sys.symbol.ohos_folder_badge_plus'))
536            .fontSize(96)
537            .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_OPACITY)
538            .fontColor([Color.Black, Color.Green, Color.White])
539        }
540      }
541
542      Row() {
543        Column() {
544          Text("无动效")
545          SymbolGlyph($r('sys.symbol.ohos_wifi'))
546            .fontSize(96)
547            .effectStrategy(SymbolEffectStrategy.NONE)
548        }
549
550        Column() {
551          Text("整体缩放动效")
552          SymbolGlyph($r('sys.symbol.ohos_wifi'))
553            .fontSize(96)
554            .effectStrategy(1)
555        }
556
557        Column() {
558          Text("层级动效")
559          SymbolGlyph($r('sys.symbol.ohos_wifi'))
560            .fontSize(96)
561            .effectStrategy(2)
562        }
563      }
564    }
565  }
566}
567```
568![symbol](figures/symbolGlyph.gif)
569
570###  示例2(设置动效)
571
572该示例通过symbolEffect属性展示了可变颜色动效和替换动效的效果。
573
574```ts
575// xxx.ets
576@Entry
577@Component
578struct Index {
579  @State isActive: boolean = true;
580  @State triggerValueReplace: number = 0;
581  replaceFlag: boolean = true;
582
583  build() {
584    Column() {
585      Row() {
586        Column() {
587          Text("可变颜色动效")
588          SymbolGlyph($r('sys.symbol.ohos_wifi'))
589            .fontSize(96)
590            .symbolEffect(new HierarchicalSymbolEffect(EffectFillStyle.ITERATIVE), this.isActive)
591          Button(this.isActive ? '关闭' : '播放').onClick(() => {
592            this.isActive = !this.isActive;
593          })
594        }.margin({right:20})
595
596        Column() {
597          Text("替换动效")
598          SymbolGlyph(this.replaceFlag ? $r('sys.symbol.checkmark_circle') : $r('sys.symbol.repeat_1'))
599            .fontSize(96)
600            .symbolEffect(new ReplaceSymbolEffect(EffectScope.WHOLE), this.triggerValueReplace)
601          Button('trigger').onClick(() => {
602            this.replaceFlag = !this.replaceFlag;
603            this.triggerValueReplace = this.triggerValueReplace + 1;
604          })
605        }
606      }
607    }.margin({
608      left:30,
609      top:50
610    })
611  }
612}
613```
614![symbol](figures/symbolGlyph_symbolEffect.gif)