形狀裁剪
用于對組件進行裁剪、遮罩處理。
說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。
屬性
名稱 | 參數類型 | 描述 |
---|---|---|
clip | [Circle] | [Ellipse] |
mask | [Circle] | [Ellipse] |
ProgressMask10+
ProgressMask設置遮罩的進度、最大值和遮罩顏色。
constructor10+
constructor(value: number, total: number, color: ResourceColor)
構造ProgressMask對象。
參數:
參數名 | 參數類型 | 必填 | 參數描述 |
---|---|---|---|
value | number | 是 | 進度遮罩的當前值。 |
total | number | 是 | 進度遮罩的最大值。 |
color | [ResourceColor] | 是 | 進度遮罩的顏色。 |
updateProgress10+
updateProgress(value: number): void
更新進度遮罩的進度值。
參數:
參數名 | 參數類型 | 必填 | 參數描述 |
---|---|---|---|
value | number | 是 | 進度遮罩的當前值。 |
updateColor10+
updateColor(value: ResourceColor): void
更新進度遮罩的顏色。
參數:
參數名 | 參數類型 | 必填 | 參數描述 |
---|---|---|---|
value | [ResourceColor] | 是 | 進度遮罩的顏色。 |
示例
示例1
// xxx.ets
@Entry
@Component
struct ClipAndMaskExample {
build() {
Column({ space: 15 }) {
Text('clip').fontSize(12).width('75%').fontColor('#DCDCDC')
Row() {
Image($r('app.media.testImg')).width('500px').height('280px')
}
.clip(true) // 如這里不設置clip為true,則Row組件的圓角不會限制其中的Image組件,Image組件的四個角會超出Row
.borderRadius(20)
// 用一個280px直徑的圓對圖片進行裁剪
Image($r('app.media.testImg'))
.clip(new Circle({ width: '280px', height: '280px' }))
.width('500px').height('280px')
Text('mask').fontSize(12).width('75%').fontColor('#DCDCDC')
// 給圖片添加了一個500px*280px的方形遮罩
Image($r('app.media.testImg'))
.mask(new Rect({ width: '500px', height: '280px' }).fill(Color.Gray))
.width('500px').height('280px')
// 給圖片添加了一個280px*280px的圓形遮罩
Image($r('app.media.testImg'))
.mask(new Circle({ width: '280px', height: '280px' }).fill(Color.Gray))
.width('500px').height('280px')
}
.width('100%')
.margin({ top: 15 })
}
}
示例2
@Entry
@Component
struct ProgressMaskExample {
@State progressflag1: boolean = true;
@State color: Color = 0x01006CDE;
@State value: number = 10.0;
@State progress: ProgressMask = new ProgressMask(10.0, 100.0, Color.Gray);
build() {
Column({ space: 15 }) {
Text('progress mask').fontSize(12).width('75%').fontColor('#DCDCDC')
// 給圖片添加了一個280px*280px的進度遮罩
Image($r('app.media.testImg'))
.width('500px').height('280px')
.mask(this.progress)
.animation({
duration: 2000, // 動畫時長
curve: Curve.Linear, // 動畫曲線
delay: 0, // 動畫延遲
iterations: 1, // 播放次數
playMode: PlayMode.Normal // 動畫模式
}) // 對Button組件的寬高屬性進行動畫配置
// 更新進度遮罩的進度值
Button('updateProgress')
.onClick((event: ClickEvent) = > {
this.value += 10;
this.progress.updateProgress(this.value);
}).width(200).height(50).margin(20)
// 更新進度遮罩的顏色
Button('updateColor')
.onClick((event: ClickEvent) = > {
if (this.progressflag1) {
this.progress.updateColor(0x9fff0000);
} else {
this.progress.updateColor(0x9f0000ff);
}
this.progressflag1 = !this.progressflag1
}).width(200).height(50).margin(20)
// 恢復進度遮罩
Button('click reset!')
.onClick((event: ClickEvent) = > {
this.value = 0;
this.progress.updateProgress(this.value);
}).width(200).height(50).margin(20)
}
.width('100%')
.margin({ top: 15 })
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
57文章
2392瀏覽量
43055
發布評論請先 登錄
相關推薦
鴻蒙ArkTS聲明式開發:跨平臺支持列表【按鍵事件】
按鍵事件指組件與鍵盤、遙控器等按鍵設備交互時觸發的事件,適用于所有可獲焦組件,例如Button。對于Text,Image等默認不可獲焦的組件,可以設置focusable屬性為true后使用按鍵事件。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【Flex布局】 通用屬性
從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。
> - 僅當父組件是 Flex、Column、Row 、GridRow時生效。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【顯隱控制】 通用屬性
控制當前組件顯示或隱藏。注意,即使組件處于隱藏狀態,在頁面刷新時仍存在重新創建過程,因此當對性能有嚴格要求時建議使用[條件渲染]代替。 默認值:Visibility.Visible 從API version 9開始,該接口支持在ArkTS卡片中使用。
鴻蒙ArkTS聲明式開發:跨平臺支持列表【分布式遷移標識】 通用屬性
組件的分布式遷移標識,指明了該組件在分布式遷移場景下可以將特定狀態恢復到對端設備。
評論