• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:宽度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。<br/>height: 高度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。<br/>radius:圆角半径,支持分别设置四个角的圆角度数,取值范围≥0。<br/>该属性和radiusWidth/radiusHeight属性效果类似,在组合使用时优先于radiusWidth/radiusHeight生效<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。<br/>radiusWidth:圆角宽度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。<br/>radiusHeight:圆角高度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp<br/>异常值按照默认值处理。|
30
31## 属性
32
33除支持[通用属性](ts-component-general-attributes.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 | 是   | 圆角的宽度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp |
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 | 是   | 圆角的高度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp |
70
71### radius
72
73radius(value: number | string | Array&lt;string&nbsp;|&nbsp;number&gt;)
74
75设置圆角半径大小,取值范围≥0。  异常值按照默认值处理。
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<br/>默认单位:vp |
88
89### fill
90
91fill(value: ResourceColor)
92
93设置填充区域的颜色,异常值按照默认值处理。与通用属性foregroundColor同时设置时,后设置的属性生效。
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设置边框间隙。取值范围≥0,异常值按照默认值处理。
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/>默认值:[]<br/>默认单位:vp |
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<br/>默认单位:vp |
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) | 是   | 边框宽度,取值范围≥0。<br/>默认值:1<br/>默认单位:vp<br/>异常值按照默认值处理。 |
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使用fill、fillOpacity、stroke、radius属性分别绘制矩形的填充颜色、透明度、边框颜色、圆角。
293
294```ts
295// xxx.ets
296@Entry
297@Component
298struct RectExample {
299  build() {
300    Column({ space: 10 }) {
301      Text('normal').fontSize(11).fontColor(0xCCCCCC).width('90%')
302      // 绘制90% * 50的矩形
303      Column({ space: 5 }) {
304        Text('normal').fontSize(9).fontColor(0xCCCCCC).width('90%')
305        // 绘制90% * 50矩形
306        Rect({ width: '90%', height: 50 })
307          .fill(Color.Pink)
308        // 绘制90% * 50的矩形框
309        Rect()
310          .width('90%')
311          .height(50)
312          .fillOpacity(0)
313          .stroke(Color.Red)
314          .strokeWidth(3)
315
316        Text('with rounded corners').fontSize(11).fontColor(0xCCCCCC).width('90%')
317        // 绘制90% * 80的矩形, 圆角宽高分别为40、20
318        Rect({ width: '90%', height: 80 })
319          .radiusHeight(20)
320          .radiusWidth(40)
321          .fill(Color.Pink)
322        // 绘制90% * 80的矩形, 圆角宽高为20
323        Rect({ width: '90%', height: 80 })
324          .radius(20)
325          .fill(Color.Pink)
326          .stroke(Color.Transparent)
327      }.width('100%').margin({ top: 10 })
328
329      // 绘制90% * 50矩形, 左上圆角宽高40,右上圆角宽高20,右下圆角宽高40,左下圆角宽高20
330      Rect({ width: '90%', height: 80 })
331        .radius([[40, 40], [20, 20], [40, 40], [20, 20]])
332        .fill(Color.Pink)
333    }.width('100%').margin({ top: 5 })
334  }
335}
336```
337
338![zh-cn_image_0000001174264386](figures/zh-cn_image_0000001174264386.png)
339
340### 示例2(绘制渐变色矩形)
341
342使用通用属性linearGradient、clipShape绘制渐变色的矩形。
343
344```ts
345// xxx.ets
346@Entry
347@Component
348struct RectExample {
349  build() {
350    Column({ space: 10 }) {
351      Column()
352        .width(100)
353        .height(100)
354        .linearGradient({
355          direction: GradientDirection.Right,
356          colors: [[0xff0000, 0.0], [0x0000ff, 0.3], [0xffff00, 1.0]]
357        })
358        .clipShape(new Rect({ width: 100, height: 100, radius: 40 }))
359      Rect()
360        .width(100)
361        .height(100)
362        // 设置矩形填充,如果需要显示背景的渐变色,请设置区域透明度.fillOpacity(0.0)
363        .fill(Color.Pink)
364        // 设置倒角为40
365        .radius(40)
366        .stroke(Color.Black)
367        // 设置渐变色,仅100*100的矩形区域生效,渐变色的边界不包含倒角
368        .linearGradient({
369          direction: GradientDirection.Right,
370          colors: [[0xff0000, 0.0], [0x0000ff, 0.3], [0xffff00, 1.0]]
371        })
372    }
373  }
374}
375```
376
377![zh-cn_image_0000001174264386](figures/zh-cn_image_0000001174264387.jpeg)
378