1# Rect
2
3矩形绘制组件。
4
5>  **说明:**
6>
7>  该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9
10## 子组件
11
1213
14
15## 接口
16
17Rect(options?: RectOptions | RoundedRectOptions)
18
19**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
20
21**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
22
23**系统能力:** SystemCapability.ArkUI.ArkUI.Full
24
25**参数:**
26
27| 参数名 | 类型 | 必填 | 说明 |
28| -------- | -------- | -------- | -------- |
29| options | [RectOptions](ts-drawing-components-rect.md#rectoptions14对象说明) \| [RoundedRectOptions](ts-drawing-components-rect.md#roundedrectoptions14对象说明)  | 否 | Rect绘制属性。 |
30
31## RectOptions<sup>14+</sup>对象说明
32用于描述Rect绘制属性。
33
34**卡片能力:** 从API version 14开始,该接口支持在ArkTS卡片中使用。
35
36**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
37
38**系统能力:** SystemCapability.ArkUI.ArkUI.Full
39
40| 名称 | 类型 | 必填 | 说明 |
41| -------- | -------- | -------- | -------- |
42| width | string \| number | 否 | 宽度。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |
43| height | string \| number | 否 | 高度。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |
44| radius | string \| number \| Array&lt;string \| number&gt; | 否 | 圆角半径,支持分别设置四个角的圆角度数。<br/>该属性和radiusWidth/radiusHeight属性效果类似,在组合使用时优先于radiusWidth/radiusHeight生效。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |
45
46## RoundedRectOptions<sup>14+</sup>对象说明
47用于描述Rect绘制属性。
48
49**卡片能力:** 从API version 14开始,该接口支持在ArkTS卡片中使用。
50
51**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
52
53**系统能力:** SystemCapability.ArkUI.ArkUI.Full
54
55| 名称 | 类型 | 必填 | 说明 |
56| -------- | -------- | -------- | -------- |
57| width | string \| number | 否 | 宽度。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |
58| height | string \| number | 否 | 高度。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |
59| radiusWidth | string \| number | 否 | 圆角宽度。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |圆角宽度。<br/>默认值:0<br/>异常值按照默认值处理。
60| radiusHeight | string \| number | 否 | 圆角高度。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。 |圆角高度。<br/>默认值:0<br/>异常值按照默认值处理。
61
62## 属性
63
64除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
65
66### radiusWidth
67
68radiusWidth(value: number | string)
69
70设置圆角的宽度,仅设置宽时宽高一致。 异常值按照默认值处理。
71
72**卡片能力:** 从API version 7开始,该接口支持在ArkTS卡片中使用。
73
74**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
75
76**系统能力:** SystemCapability.ArkUI.ArkUI.Full
77
78**参数:**
79
80| 参数名 | 类型                       | 必填 | 说明                       |
81| ------ | -------------------------- | ---- | -------------------------- |
82| value  | number&nbsp;\|&nbsp;string | 是   | 圆角的宽度。<br/>默认值:0<br/>默认单位:vp |
83
84### radiusHeight
85
86radiusHeight(value: number | string)
87
88设置圆角的高度,仅设置高时宽高一致。  异常值按照默认值处理。
89
90**卡片能力:** 从API version 7开始,该接口支持在ArkTS卡片中使用。
91
92**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
93
94**系统能力:** SystemCapability.ArkUI.ArkUI.Full
95
96**参数:**
97
98| 参数名 | 类型                       | 必填 | 说明                       |
99| ------ | -------------------------- | ---- | -------------------------- |
100| value  | number&nbsp;\|&nbsp;string | 是   | 圆角的高度。<br/>默认值:0<br/>默认单位:vp |
101
102### radius
103
104radius(value: number | string | Array&lt;string&nbsp;|&nbsp;number&gt;)
105
106设置圆角半径大小。  异常值按照默认值处理。
107
108**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
109
110**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
111
112**系统能力:** SystemCapability.ArkUI.ArkUI.Full
113
114**参数:**
115
116| 参数名 | 类型                                                         | 必填 | 说明                         |
117| ------ | ------------------------------------------------------------ | ---- | ---------------------------- |
118| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;Array&lt;string&nbsp;\|&nbsp;number&gt; | 是   | 圆角半径大小。<br/>默认值:0<br/>默认单位:vp |
119
120### fill
121
122fill(value: ResourceColor)
123
124设置填充区域的颜色,异常值按照默认值处理。与通用属性foregroundColor同时设置时,后设置的属性生效。
125
126**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
127
128**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
129
130**系统能力:** SystemCapability.ArkUI.ArkUI.Full
131
132**参数:**
133
134| 参数名 | 类型                                       | 必填 | 说明                                   |
135| ------ | ------------------------------------------ | ---- | -------------------------------------- |
136| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 填充区域颜色。<br/>默认值:Color.Black |
137
138### fillOpacity
139
140fillOpacity(value: number | string | Resource)
141
142设置填充区域透明度。取值范围是[0.0, 1.0],若给定值小于0.0,则取值为0.0;若给定值大于1.0,则取值为1.0,其余异常值按1.0处理。
143
144**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
145
146**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
147
148**系统能力:** SystemCapability.ArkUI.ArkUI.Full
149
150**参数:**
151
152| 参数名 | 类型                                                         | 必填 | 说明                           |
153| ------ | ------------------------------------------------------------ | ---- | ------------------------------ |
154| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 填充区域透明度。<br/>默认值:1 |
155
156### stroke
157
158stroke(value: ResourceColor)
159
160设置边框颜色,不设置时,默认没有边框。异常值不会绘制边框。
161
162**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
163
164**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
165
166**系统能力:** SystemCapability.ArkUI.ArkUI.Full
167
168**参数:**
169
170| 参数名 | 类型                                       | 必填 | 说明       |
171| ------ | ------------------------------------------ | ---- | ---------- |
172| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 边框颜色。 |
173
174### strokeDashArray
175
176strokeDashArray(value: Array&lt;any&gt;)
177
178设置边框间隙。异常值按照默认值处理。
179
180**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
181
182**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
183
184**系统能力:** SystemCapability.ArkUI.ArkUI.Full
185
186**参数:**
187
188| 参数名 | 类型             | 必填 | 说明                      |
189| ------ | ---------------- | ---- | ------------------------- |
190| value  | Array&lt;any&gt; | 是   | 边框间隙。<br/>默认值:[]<br/>默认单位:vp |
191
192### strokeDashOffset
193
194strokeDashOffset(value: number | string)
195
196设置边框绘制起点的偏移量。异常值按照默认值处理。
197
198**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
199
200**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
201
202**系统能力:** SystemCapability.ArkUI.ArkUI.Full
203
204**参数:**
205
206| 参数名 | 类型                       | 必填 | 说明                                 |
207| ------ | -------------------------- | ---- | ------------------------------------ |
208| value  | number&nbsp;\|&nbsp;string | 是   | 边框绘制起点的偏移量。<br/>默认值:0<br/>默认单位:vp |
209
210### strokeLineCap
211
212strokeLineCap(value: LineCapStyle)
213
214设置边框端点绘制样式。
215
216**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
217
218**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
219
220**系统能力:** SystemCapability.ArkUI.ArkUI.Full
221
222**参数:**
223
224| 参数名 | 类型                                              | 必填 | 说明                                             |
225| ------ | ------------------------------------------------- | ---- | ------------------------------------------------ |
226| value  | [LineCapStyle](ts-appendix-enums.md#linecapstyle) | 是   | 边框端点绘制样式。<br/>默认值:LineCapStyle.Butt |
227
228### strokeLineJoin
229
230strokeLineJoin(value: LineJoinStyle)
231
232设置边框拐角绘制样式。
233
234**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
235
236**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
237
238**系统能力:** SystemCapability.ArkUI.ArkUI.Full
239
240**参数:**
241
242| 参数名 | 类型                                                | 必填 | 说明                                               |
243| ------ | --------------------------------------------------- | ---- | -------------------------------------------------- |
244| value  | [LineJoinStyle](ts-appendix-enums.md#linejoinstyle) | 是   | 边框拐角绘制样式。<br/>默认值:LineJoinStyle.Miter |
245
246### strokeMiterLimit
247
248strokeMiterLimit(value: number | string)
249
250设置斜接长度与边框宽度比值的极限值。斜接长度表示外边框外边交点到内边交点的距离,边框宽度即strokeWidth属性的值。该属性取值需在strokeLineJoin属性取值LineJoinStyle.Miter时生效。
251
252该属性的合法值范围应当大于等于1.0,当取值范围在[0,1)时按1.0处理,其余异常值按默认值处理。
253
254**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
255
256**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
257
258**系统能力:** SystemCapability.ArkUI.ArkUI.Full
259
260**参数:**
261
262| 参数名 | 类型                       | 必填 | 说明                                           |
263| ------ | -------------------------- | ---- | ---------------------------------------------- |
264| value  | number&nbsp;\|&nbsp;string | 是   | 斜接长度与边框宽度比值的极限值。<br/>默认值:4 |
265
266### strokeOpacity
267
268strokeOpacity(value: number | string | Resource)
269
270设置边框透明度。该属性的取值范围是[0.0, 1.0],若给定值小于0.0,则取值为0.0;若给定值大于1.0,则取值为1.0,其余异常值按1.0处理 。
271
272**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
273
274**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
275
276**系统能力:** SystemCapability.ArkUI.ArkUI.Full
277
278**参数:**
279
280| 参数名 | 类型                                                         | 必填 | 说明                       |
281| ------ | ------------------------------------------------------------ | ---- | -------------------------- |
282| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 边框透明度。<br/>默认值:1 |
283
284### strokeWidth
285
286strokeWidth(value: Length)
287
288设置边框宽度。该属性若为string类型, 暂不支持百分比,百分比按照1px处理。
289
290**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
291
292**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
293
294**系统能力:** SystemCapability.ArkUI.ArkUI.Full
295
296**参数:**
297
298| 参数名 | 类型                         | 必填 | 说明                     |
299| ------ | ---------------------------- | ---- | ------------------------ |
300| value  | [Length](ts-types.md#length) | 是   | 边框宽度。<br/>默认值:1<br/>默认单位:vp |
301
302### antiAlias
303
304antiAlias(value: boolean)
305
306设置是否开启抗锯齿效果。
307
308**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
309
310**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
311
312**系统能力:** SystemCapability.ArkUI.ArkUI.Full
313
314**参数:**
315
316| 参数名 | 类型    | 必填 | 说明                                  |
317| ------ | ------- | ---- | ------------------------------------- |
318| value  | boolean | 是   | 是否开启抗锯齿效果。<br/>默认值:true |
319
320## 示例
321### 示例1(组件属性绘制)
322
323使用fill、fillOpacity、stroke、radius属性分别绘制矩形的填充颜色、透明度、边框颜色、圆角。
324
325```ts
326// xxx.ets
327@Entry
328@Component
329struct RectExample {
330  build() {
331    Column({ space: 10 }) {
332      Text('normal').fontSize(11).fontColor(0xCCCCCC).width('90%')
333      // 绘制90% * 50的矩形
334      Column({ space: 5 }) {
335        Text('normal').fontSize(9).fontColor(0xCCCCCC).width('90%')
336        // 绘制90% * 50矩形
337        Rect({ width: '90%', height: 50 })
338          .fill(Color.Pink)
339        // 绘制90% * 50的矩形框
340        Rect()
341          .width('90%')
342          .height(50)
343          .fillOpacity(0)
344          .stroke(Color.Red)
345          .strokeWidth(3)
346
347        Text('with rounded corners').fontSize(11).fontColor(0xCCCCCC).width('90%')
348        // 绘制90% * 80的矩形, 圆角宽高分别为40、20
349        Rect({ width: '90%', height: 80 })
350          .radiusHeight(20)
351          .radiusWidth(40)
352          .fill(Color.Pink)
353        // 绘制90% * 80的矩形, 圆角宽高为20
354        Rect({ width: '90%', height: 80 })
355          .radius(20)
356          .fill(Color.Pink)
357          .stroke(Color.Transparent)
358      }.width('100%').margin({ top: 10 })
359      // 绘制90% * 50矩形, 左上圆角宽高40,右上圆角宽高20,右下圆角宽高40,左下圆角宽高20
360      Rect({ width: '90%', height: 80 })
361        .radius([[40, 40], [20, 20], [40, 40], [20, 20]])
362        .fill(Color.Pink)
363    }.width('100%').margin({ top: 5 })
364  }
365}
366```
367
368![zh-cn_image_0000001174264386](figures/zh-cn_image_0000001174264386.png)
369
370### 示例2(绘制渐变色矩形)
371
372使用通用属性linearGradient、clipShape绘制渐变色的矩形。
373
374```ts
375// xxx.ets
376@Entry
377@Component
378struct RectExample {
379  build() {
380    Column({ space: 10 }) {
381      Column()
382        .width(100)
383        .height(100)
384        .linearGradient({
385          direction: GradientDirection.Right,
386          colors: [[0xff0000, 0.0], [0x0000ff, 0.3], [0xffff00, 1.0]]
387        })
388        .clipShape(new Rect({ width: 100, height: 100, radius: 40 }))
389      Rect()
390        .width(100)
391        .height(100)
392          // 设置矩形填充,如果需要显示背景的渐变色,请设置区域透明度.fillOpacity(0.0)
393        .fill(Color.Pink)
394          // 设置倒角为40
395        .radius(40)
396        .stroke(Color.Black)
397          // 设置渐变色,仅100*100的矩形区域生效,渐变色的边界不包含倒角
398        .linearGradient({
399          direction: GradientDirection.Right,
400          colors: [[0xff0000, 0.0], [0x0000ff, 0.3], [0xffff00, 1.0]]
401        })
402    }
403  }
404}
405```
406
407![zh-cn_image_0000001174264386](figures/zh-cn_image_0000001174264387.jpeg)
408