圖片邊框設(shè)置

2024-01-22 16:07 更新

設(shè)置容器組件的圖片邊框樣式。

說明

從API Version 9開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。

屬性

名稱

參數(shù)類型

描述

borderImage

BorderImageOption

圖片邊框或者漸變色邊框設(shè)置接口。

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

BorderImageOption對象說明

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

名稱

類型

描述

source

string | Resource | linearGradient

邊框圖源或者漸變色設(shè)置。

說明: 邊框圖源僅適用于容器組件,如Row、Column、Flex,在非容器組件上使用會失效。

slice

Length | EdgeWidths

設(shè)置圖片邊框切割寬度。

默認(rèn)值:0

說明:

設(shè)置負(fù)數(shù)時取默認(rèn)值。

參數(shù)類型為Length時,統(tǒng)一設(shè)置四個角的寬高。

參數(shù)類型為EdgeWidths時:

- Top:設(shè)置圖片左上角或者右上角被切割的高。

- Bottom:設(shè)置圖片左下角或者右下角被切割的高。

- Left:設(shè)置圖片左上角或者左下角被切割的寬。

- Right:設(shè)置圖片右上角或者右下角被切割的寬。

width

Length | EdgeWidths

設(shè)置圖片邊框?qū)挾取?/p>

默認(rèn)值:0

說明:

參數(shù)類型為Length時,統(tǒng)一設(shè)置四個角的寬高,設(shè)置負(fù)數(shù)時取默認(rèn)值。

參數(shù)類型為EdgeWidths時:

- Top:設(shè)置圖片邊框上邊框的寬。

- Bottom:設(shè)置圖片邊框下邊框的寬。

- Left:設(shè)置圖片邊框左邊框的寬。

- Right:設(shè)置圖片邊框右邊框?qū)挕TO(shè)置負(fù)數(shù)時值取1。

outset

Length | EdgeWidths

設(shè)置邊框圖片向外延伸距離。

默認(rèn)值:0

說明

設(shè)置負(fù)數(shù)時取默認(rèn)值。

參數(shù)類型為Length時,統(tǒng)一設(shè)置四個角的寬高。

參數(shù)類型為EdgeWidths時:

- Top:設(shè)置邊框圖片上邊框向外延伸的距離。

- Bottom:設(shè)置邊框圖片下邊框向外延伸的距離。

- Left:設(shè)置邊框圖片左邊框向外延伸的距離。

- Right:設(shè)置邊框圖片右邊框向外延伸的距離。

repeat

RepeatMode

設(shè)置邊框圖片的重復(fù)方式。

默認(rèn)值:RepeatMode.Stretch

fill

boolean

設(shè)置邊框圖片中心填充。

默認(rèn)值:false

RepeatMode枚舉說明

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

名稱

描述

Repeat

被切割圖片重復(fù)鋪平在圖片邊框上,超出的部分會被剪裁。

Stretch

被切割圖片以拉伸填充的方式鋪滿圖片邊框。

Round

被切割圖片以整數(shù)次平鋪在圖片邊框上,無法以整數(shù)次平鋪時壓縮被切割圖片。

Space

被切割圖片以整數(shù)次平鋪在圖片邊框上,無法以整數(shù)次平鋪時以空白填充。

示例

示例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. }

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號