• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 形状裁剪
2
3用于对组件进行裁剪、遮罩处理。
4
5>  **说明:**
6>
7> 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9
10## 属性
11
12
13| 名称    | 参数类型                                     | 描述                                  |
14| -----| ------------------------------------------ | ------------------------------------ |
15| clip | [Circle](ts-drawing-components-circle.md)&nbsp;\|&nbsp;[Ellipse](ts-drawing-components-ellipse.md)&nbsp;\|&nbsp;[Path](ts-drawing-components-path.md)&nbsp;\|&nbsp;[Rect](ts-drawing-components-rect.md)&nbsp;\|&nbsp;boolean | 参数为相应类型的组件,按指定的形状对当前组件进行裁剪;参数为boolean类型时,设置是否按照父容器边缘轮廓进行裁剪。<br>默认值:false<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
16| mask | [Circle](ts-drawing-components-circle.md)&nbsp;\|&nbsp;[Ellipse](ts-drawing-components-ellipse.md)&nbsp;\|&nbsp;[Path](ts-drawing-components-path.md)&nbsp;\|&nbsp;[Rect](ts-drawing-components-rect.md)&nbsp;| 在当前组件上加上指定形状的遮罩。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
17
18
19## 示例
20
21```ts
22// xxx.ets
23@Entry
24@Component
25struct ClipAndMaskExample {
26  build() {
27    Column({ space: 15 }) {
28      Text('clip').fontSize(12).width('75%').fontColor('#DCDCDC')
29      Row() {
30        Image($r('app.media.testImg')).width('500px').height('280px')
31      }
32      .clip(true) // 如这里不设置clip为true,则Row组件的圆角不会限制其中的Image组件,Image组件的四个角会超出Row
33      .borderRadius(20)
34      // 用一个280px直径的圆对图片进行裁剪
35      Image($r('app.media.testImg'))
36        .clip(new Circle({ width: '280px', height: '280px' }))
37        .width('500px').height('280px')
38
39      Text('mask').fontSize(12).width('75%').fontColor('#DCDCDC')
40      // 给图片添加了一个500px*280px的方形遮罩
41      Image($r('app.media.testImg'))
42        .mask(new Rect({ width: '500px', height: '280px' }).fill(Color.Gray))
43        .width('500px').height('280px')
44
45      // 给图片添加了一个280px*280px的圆形遮罩
46      Image($r('app.media.testImg'))
47        .mask(new Circle({ width: '280px', height: '280px' }).fill(Color.Gray))
48        .width('500px').height('280px')
49    }
50    .width('100%')
51    .margin({ top: 15 })
52  }
53}
54```
55
56![clipAndMask](figures/clipAndMask.PNG)