图片边框设置

2024-01-22 16:07 更新

设置容器组件的图片边框样式。

说明

从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

属性

名称

参数类型

描述

borderImage

BorderImageOption

图片边框或者渐变色边框设置接口。

该接口支持在ArkTS卡片中使用。

BorderImageOption对象说明

该接口支持在ArkTS卡片中使用。

名称

类型

描述

source

string | Resource | linearGradient

边框图源或者渐变色设置。

说明: 边框图源仅适用于容器组件,如Row、Column、Flex,在非容器组件上使用会失效。

slice

Length | EdgeWidths

设置图片边框切割宽度。

默认值:0

说明:

设置负数时取默认值。

参数类型为Length时,统一设置四个角的宽高。

参数类型为EdgeWidths时:

- Top:设置图片左上角或者右上角被切割的高。

- Bottom:设置图片左下角或者右下角被切割的高。

- Left:设置图片左上角或者左下角被切割的宽。

- Right:设置图片右上角或者右下角被切割的宽。

width

Length | EdgeWidths

设置图片边框宽度。

默认值:0

说明:

参数类型为Length时,统一设置四个角的宽高,设置负数时取默认值。

参数类型为EdgeWidths时:

- Top:设置图片边框上边框的宽。

- Bottom:设置图片边框下边框的宽。

- Left:设置图片边框左边框的宽。

- Right:设置图片边框右边框宽。设置负数时值取1。

outset

Length | EdgeWidths

设置边框图片向外延伸距离。

默认值:0

说明

设置负数时取默认值。

参数类型为Length时,统一设置四个角的宽高。

参数类型为EdgeWidths时:

- Top:设置边框图片上边框向外延伸的距离。

- Bottom:设置边框图片下边框向外延伸的距离。

- Left:设置边框图片左边框向外延伸的距离。

- Right:设置边框图片右边框向外延伸的距离。

repeat

RepeatMode

设置边框图片的重复方式。

默认值:RepeatMode.Stretch

fill

boolean

设置边框图片中心填充。

默认值:false

RepeatMode枚举说明

该接口支持在ArkTS卡片中使用。

名称

描述

Repeat

被切割图片重复铺平在图片边框上,超出的部分会被剪裁。

Stretch

被切割图片以拉伸填充的方式铺满图片边框。

Round

被切割图片以整数次平铺在图片边框上,无法以整数次平铺时压缩被切割图片。

Space

被切割图片以整数次平铺在图片边框上,无法以整数次平铺时以空白填充。

示例

示例1

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct Index {
  5. build() {
  6. Row() {
  7. Column() {
  8. Text('This is gradient color.').textAlign(TextAlign.Center).height(50).width(200)
  9. .borderImage({
  10. source: {
  11. angle: 90,
  12. direction: GradientDirection.Left,
  13. colors: [[0xAEE1E1, 0.0], [0xD3E0DC, 0.3], [0xFCD1D1, 1.0]]
  14. },
  15. slice: { top: 10, bottom: 10, left: 10, right: 10 },
  16. width: { top: "10px", bottom: "10px", left: "10px", right: "10px" },
  17. repeat: RepeatMode.Stretch,
  18. fill: false
  19. })
  20. }
  21. .width('100%')
  22. }
  23. .height('100%')
  24. }
  25. }

示例2

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct BorderImage {
  5. @State WidthValue: number = 0
  6. @State SliceValue: number = 0
  7. @State OutSetValue: number = 0
  8. @State RepeatValue: RepeatMode[] = [RepeatMode.Repeat, RepeatMode.Stretch, RepeatMode.Round, RepeatMode.Space]
  9. @State SelectIndex: number = 0
  10. @State SelectText: string = 'Repeat'
  11. @State FillValue: boolean = false
  12. build() {
  13. Row() {
  14. Column({ space: 20 }) {
  15. Row() {
  16. Text('This is borderImage.').textAlign(TextAlign.Center).fontSize(50)
  17. }
  18. .borderImage({
  19. source: $r('app.media.icon'),
  20. slice: this.SliceValue,
  21. width: this.WidthValue,
  22. outset: this.OutSetValue,
  23. repeat: this.RepeatValue[this.SelectIndex],
  24. fill: this.FillValue
  25. })
  26. Column() {
  27. Text(`borderImageSlice = ${this.SliceValue}px`)
  28. Slider({
  29. value: this.SliceValue,
  30. min: 0,
  31. max: 100,
  32. style: SliderStyle.OutSet
  33. })
  34. .onChange((value: number, mode: SliderChangeMode) => {
  35. this.SliceValue = value
  36. })
  37. }
  38. Column() {
  39. Text(`borderImageWidth = ${this.WidthValue}px`)
  40. Slider({
  41. value: this.WidthValue,
  42. min: 0,
  43. max: 100,
  44. style: SliderStyle.OutSet
  45. })
  46. .onChange((value: number, mode: SliderChangeMode) => {
  47. this.WidthValue = value
  48. })
  49. }
  50. Column() {
  51. Text(`borderImageOutSet = ${this.OutSetValue}px`)
  52. Slider({
  53. value: this.OutSetValue,
  54. min: 0,
  55. max: 100,
  56. style: SliderStyle.OutSet
  57. })
  58. .onChange((value: number, mode: SliderChangeMode) => {
  59. this.OutSetValue = value
  60. })
  61. }
  62. Row() {
  63. Text('borderImageRepeat: ')
  64. Select([{ value: 'Repeat' }, { value: 'Stretch' }, { value: 'Round' }, { value: 'Space' }])
  65. .value(this.SelectText)
  66. .selected(this.SelectIndex)
  67. .onSelect((index: number, text: string) => {
  68. this.SelectIndex = index
  69. this.SelectText = text
  70. })
  71. }
  72. Row() {
  73. Text(`borderImageFill: ${this.FillValue} `)
  74. Toggle({ type: ToggleType.Switch, isOn: this.FillValue })
  75. .onChange((isOn: boolean) => {
  76. this.FillValue = isOn
  77. })
  78. }
  79. }
  80. .width('100%')
  81. }
  82. .height('100%')
  83. }
  84. }

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号