1# Rect 2 3矩形绘制组件。 4 5> **说明:** 6> 7> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8 9 10## 子组件 11 12无 13 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<string \| number>} \| {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 \| 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 \| string | 是 | 圆角的高度,取值范围≥0。<br/>默认值:0<br/>默认单位:vp | 70 71### radius 72 73radius(value: number | string | Array<string | number>) 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 \| string \| Array<string \| number> | 是 | 圆角半径大小。<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 \| string \| [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<any>) 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<any> | 是 | 边框间隙。<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 \| 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 \| 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 \| string \| [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 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 378