W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
提供幀動(dòng)畫組件來實(shí)現(xiàn)逐幀播放圖片的能力,可以配置需要播放的圖片列表,每張圖片可以配置時(shí)長。
該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
除支持通用屬性外,還支持以下屬性:
參數(shù)名稱 | 參數(shù)類型 | 參數(shù)描述 |
---|---|---|
images | Array<ImageFrameInfo> | 設(shè)置圖片幀信息集合。每一幀的幀信息(ImageFrameInfo)包含圖片路徑、圖片大小、圖片位置和圖片播放時(shí)長信息,詳見ImageFrameInfo屬性說明。 默認(rèn)值:[] 說明: 不支持動(dòng)態(tài)更新。 |
state | 默認(rèn)為初始狀態(tài),用于控制播放狀態(tài)。 默認(rèn)值:AnimationStatus.Initial | |
duration | number | 單位為毫秒,默認(rèn)時(shí)長為1000ms;duration為0時(shí),不播放圖片;值的改變只會(huì)在下一次循環(huán)開始時(shí)生效;當(dāng)images中任意一幀圖片設(shè)置了單獨(dú)的duration后,該屬性設(shè)置無效。 默認(rèn)值:1000 |
reverse | boolean | 設(shè)置播放順序。false表示從第1張圖片播放到最后1張圖片; true表示從最后1張圖片播放到第1張圖片。 默認(rèn)值:false |
fixedSize | boolean | 設(shè)置圖片大小是否固定為組件大小。 true表示圖片大小與組件大小一致,此時(shí)設(shè)置圖片的width 、height 、top 和left屬性是無效的。false表示每一張圖片的width 、height 、top和left屬性都要單獨(dú)設(shè)置。 默認(rèn)值:true |
preDecode(deprecated) | number | 預(yù)解碼的圖片數(shù)量。例如該值設(shè)為2,則播放當(dāng)前頁時(shí)會(huì)提前加載后面兩張圖片至緩存以提升性能。 從API version9開始廢棄。 默認(rèn)值:0 |
fillMode | 設(shè)置動(dòng)畫開始前和結(jié)束后的狀態(tài),可選值參見FillMode說明。 默認(rèn)值:FillMode.Forwards | |
iterations | number | 默認(rèn)播放一次,設(shè)置為-1時(shí)表示無限次播放。 默認(rèn)值:1 |
參數(shù)名稱 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
src | string | Resource9+ | 是 | 圖片路徑,圖片格式為svg,png和jpg,從API Version9開始支持Resource類型的路徑。 |
width | number | string | 否 | 圖片寬度。 默認(rèn)值:0 |
height | number | string | 否 | 圖片高度。 默認(rèn)值:0 |
top | number | string | 否 | 圖片相對于組件左上角的縱向坐標(biāo)。 默認(rèn)值:0 |
left | number | string | 否 | 圖片相對于組件左上角的橫向坐標(biāo)。 默認(rèn)值:0 |
duration | number | 否 | 每一幀圖片的播放時(shí)長,單位毫秒。 默認(rèn)值:0 |
除支持通用事件外,還支持以下事件:
名稱 | 功能描述 |
---|---|
onStart(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫開始播放時(shí)觸發(fā)。 |
onPause(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫暫停播放時(shí)觸發(fā)。 |
onRepeat(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫重復(fù)播放時(shí)觸發(fā)。 |
onCancel(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫取消播放時(shí)觸發(fā)。 |
onFinish(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫播放完成時(shí)觸發(fā)。 |
- // xxx.ets
- @Entry
- @Component
- struct ImageAnimatorExample {
- @State state: AnimationStatus = AnimationStatus.Initial
- @State reverse: boolean = false
- @State iterations: number = 1
- build() {
- Column({ space: 10 }) {
- ImageAnimator()
- .images([
- {
- src: $r('app.media.img1')
- },
- {
- src: $r('app.media.img2')
- },
- {
- src: $r('app.media.img3')
- },
- {
- src: $r('app.media.img4')
- }
- ])
- .duration(2000)
- .state(this.state).reverse(this.reverse)
- .fillMode(FillMode.None).iterations(this.iterations).width(340).height(240)
- .margin({ top: 100 })
- .onStart(() => {
- console.info('Start')
- })
- .onPause(() => {
- console.info('Pause')
- })
- .onRepeat(() => {
- console.info('Repeat')
- })
- .onCancel(() => {
- console.info('Cancel')
- })
- .onFinish(() => {
- console.info('Finish')
- this.state = AnimationStatus.Stopped
- })
- Row() {
- Button('start').width(100).padding(5).onClick(() => {
- this.state = AnimationStatus.Running
- }).margin(5)
- Button('pause').width(100).padding(5).onClick(() => {
- this.state = AnimationStatus.Paused // 顯示當(dāng)前幀圖片
- }).margin(5)
- Button('stop').width(100).padding(5).onClick(() => {
- this.state = AnimationStatus.Stopped // 顯示動(dòng)畫的起始幀圖片
- }).margin(5)
- }
- Row() {
- Button('reverse').width(100).padding(5).onClick(() => {
- this.reverse = !this.reverse
- }).margin(5)
- Button('once').width(100).padding(5).onClick(() => {
- this.iterations = 1
- }).margin(5)
- Button('infinite').width(100).padding(5).onClick(() => {
- this.iterations = -1 // 無限循環(huán)播放
- }).margin(5)
- }
- }.width('100%').height('100%')
- }
- }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: