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