ts-universal-attributes-border-image.md 3.9 KB
Newer Older
X
xiexiyun 已提交
1
# 图片边框设置
2

X
xiexiyun 已提交
3
设置组件图片边框样式。
4

X
xiexiyun 已提交
5 6
>  **说明:**
>
H
HelloCrease 已提交
7
>  从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8

T
firstt  
tianyu 已提交
9
## 属性
X
xiexiyun 已提交
10

H
HelloCrease 已提交
11 12
| 名称         | 参数类型                                     | 描述                                      |
| ---------- | ---------------------------------------- | --------------------------------------- |
M
match 已提交
13
| borderImage     | [BorderImageOption](#borderimageoption对象说明) | 图片边框或者渐变色边框设置接口。                            |
L
luoying_ace_admin 已提交
14 15 16 17 18

## BorderImageOption对象说明

| 名称         | 类型                                     | 描述                                      |
| ---------- | ---------------------------------------- | --------------------------------------- |
H
HelloCrease 已提交
19
| source     | string \| [Resource](ts-types.md#resource) \| [linearGradient](ts-universal-attributes-gradient-color.md) | 边框图源或者渐变色设置。                            |
M
match 已提交
20 21 22 23
| slice      | [Length](ts-types.md#length) \| [EdgeWidths](ts-types.md#edgewidths9) | 设置图片边框切割宽度。<br/>默认值:0                   |
| width      | [Length](ts-types.md#length) \| [EdgeWidths](ts-types.md#edgewidths9) | 设置图片边框宽度。<br/>默认值:0                     |
| outset     | [Length](ts-types.md#length) \| [EdgeWidths](ts-types.md#edgewidths9) | 设置边框图片向外延伸距离。<br/>默认值:0                 |
| repeat | [RepeatMode](#repeatmode枚举说明)                               | 设置边框图片的重复方式。<br/>默认值:RepeatMode.Stretch |
H
HelloCrease 已提交
24
| fill       | boolean                                  | 设置边框图片中心填充。<br/>默认值:false               |
X
xiexiyun 已提交
25 26


T
firstt  
tianyu 已提交
27
## RepeatMode枚举说明
X
xiexiyun 已提交
28

H
HelloCrease 已提交
29 30 31 32 33 34
| 名称      | 描述                                  |
| ------- | ----------------------------------- |
| Repeat  | 被切割图片重复铺平在图片边框上,超出的部分会被剪裁。          |
| Stretch | 被切割图片以拉伸填充的方式铺满图片边框。                |
| Round   | 被切割图片以整数次平铺在图片边框上,无法以整数次平铺时压缩被切割图片。 |
| Space   | 被切割图片以整数次平铺在图片边框上,无法以整数次平铺时以空白填充。   |
X
xiexiyun 已提交
35

36

X
xiexiyun 已提交
37 38 39 40 41 42 43
## 示例

```ts
// xxx.ets
@Entry
@Component
struct Index {
Y
yamila 已提交
44
  @State outSetValue: number = 40
45

X
xiexiyun 已提交
46 47 48
  build() {
    Row() {
      Column() {
Y
yamila 已提交
49
        Text('This is borderImage.').textAlign(TextAlign.Center).fontSize(50)
X
xiexiyun 已提交
50
          .borderImage({
Y
yamila 已提交
51 52 53 54
            source: $r('app.media.heart'),
            slice: `${this.outSetValue}%`,
            width: `${this.outSetValue}px`,
            outset: '5px',
X
xiexiyun 已提交
55 56
            repeat: RepeatMode.Repeat,
            fill: false
M
match 已提交
57
          })
Y
yamila 已提交
58 59 60 61 62 63 64 65 66 67 68
        Slider({
          value: this.outSetValue,
          min: 0,
          max: 100,
          style: SliderStyle.OutSet
        })
          .margin({ top: 30 })
          .onChange((value: number, mode: SliderChangeMode) => {
            this.outSetValue = value;
            console.info('value:' + value + 'mode:' + mode.toString());
          })
X
xiexiyun 已提交
69 70 71 72 73 74 75 76
      }
      .width('100%')
    }
    .height('100%')
  }
}
```

Y
yamila 已提交
77
![zh-cn_image_borderImage](figures/borderImage.gif)
X
xiexiyun 已提交
78 79 80 81 82 83 84 85 86 87


```ts
// xxx.ets
@Entry
@Component
struct Index {
  build() {
    Row() {
      Column() {
Y
yamila 已提交
88
        Text('This is gradient color.').textAlign(TextAlign.Center).width(68)
X
xiexiyun 已提交
89
          .borderImage({
M
match 已提交
90 91
            source: {
              angle: 90,
X
xiexiyun 已提交
92
              direction: GradientDirection.Left,
M
match 已提交
93 94 95 96
              colors: [[0xAEE1E1, 0.0], [0xD3E0DC, 0.3], [0xFCD1D1, 1.0]]
            },
            slice: { top: 10, bottom: 10, left: 10, right: 10 },
            width: { top: "10px", bottom: "10px", left: "10px", right: "10px" },
X
xiexiyun 已提交
97 98
            repeat: RepeatMode.Stretch,
            fill: false
M
match 已提交
99
          })
X
xiexiyun 已提交
100 101 102 103 104 105 106 107
      }
      .width('100%')
    }
    .height('100%')
  }
}
```

X
xiexiyun 已提交
108
![zh-cn_image_borderImageGradient](figures/borderImageGradient.png)