ImageAnimator
提供幀動(dòng)畫(huà)組件來(lái)實(shí)現(xiàn)逐幀播放圖片的能力,可以配置需要播放的圖片列表,每張圖片可以配置時(shí)長(zhǎng)。
說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
該組件從API Version 7開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
子組件
無(wú)
接口
ImageAnimator()
從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。
屬性
除支持[通用屬性]外,還支持以下屬性:
| 參數(shù)名稱(chēng) | 參數(shù)類(lèi)型 | 參數(shù)描述 |
|---|---|---|
| images | Array<[ImageFrameInfo]> | 設(shè)置圖片幀信息集合。每一幀的幀信息(ImageFrameInfo)包含圖片路徑、圖片大小、圖片位置和圖片播放時(shí)長(zhǎng)信息,詳見(jiàn)ImageFrameInfo屬性說(shuō)明。 默認(rèn)值:[]**說(shuō)明:**不支持動(dòng)態(tài)更新。 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| state | [AnimationStatus] | 默認(rèn)為初始狀態(tài),用于控制播放狀態(tài)。 默認(rèn)值:AnimationStatus.Initial 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| duration | number | 單位為毫秒,默認(rèn)時(shí)長(zhǎng)為1000ms;duration為0時(shí),不播放圖片;值的改變只會(huì)在下一次循環(huán)開(kāi)始時(shí)生效;當(dāng)images中任意一幀圖片設(shè)置了單獨(dú)的duration后,該屬性設(shè)置無(wú)效。 默認(rèn)值:1000 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| reverse | boolean | 設(shè)置播放方向。false表示從第1張圖片播放到最后1張圖片; true表示從最后1張圖片播放到第1張圖片。 默認(rèn)值:false 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| fixedSize | boolean | 設(shè)置圖片大小是否固定為組件大小。 true表示圖片大小與組件大小一致,此時(shí)設(shè)置圖片的width 、height 、top 和left屬性是無(wú)效的。false表示每一張圖片的width 、height 、top和left屬性都要單獨(dú)設(shè)置。 默認(rèn)值:true 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| fillMode | [FillMode] | 設(shè)置當(dāng)前播放方向下,動(dòng)畫(huà)開(kāi)始前和結(jié)束后的狀態(tài),可選值參見(jiàn)FillMode說(shuō)明。動(dòng)畫(huà)結(jié)束后的狀態(tài)由fillMode和reverse屬性共同決定。例如,fillMode為Forwards表示停止時(shí)維持動(dòng)畫(huà)最后一個(gè)關(guān)鍵幀的狀態(tài),若reverse為false則維持正播的最后一幀,即最后一張圖,若reverse為true則維持逆播的最后一幀,即第一張圖。 默認(rèn)值:FillMode.Forwards 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| iterations | number | 默認(rèn)播放一次,設(shè)置為-1時(shí)表示無(wú)限次播放。 默認(rèn)值:1 |
ImageFrameInfo對(duì)象說(shuō)明
| 參數(shù)名稱(chēng) | 參數(shù)類(lèi)型 | 必填 | 參數(shù)描述 |
|---|---|---|---|
| src | string | [Resource]9+ | 是 |
| width | number | string | 否 |
| height | number | string | 否 |
| top | number | string | 否 |
| left | number | string | 否 |
| duration | number | 否 | 每一幀圖片的播放時(shí)長(zhǎng),單位毫秒。 默認(rèn)值:0 |
事件
除支持[通用事件]外,還支持以下事件:
| 名稱(chēng) | 功能描述 |
|---|---|
| onStart(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫(huà)開(kāi)始播放時(shí)觸發(fā)。 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| onPause(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫(huà)暫停播放時(shí)觸發(fā)。 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| onRepeat(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫(huà)重復(fù)播放時(shí)觸發(fā)。 |
| onCancel(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫(huà)取消播放時(shí)觸發(fā)。 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。 |
| onFinish(event: () => void) | 狀態(tài)回調(diào),動(dòng)畫(huà)播放完成時(shí)觸發(fā)。 從API version 10開(kāi)始,該接口支持在ArkTS卡片中使用。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |

示例
// 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)畫(huà)的起始幀圖片
}).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 // 無(wú)限循環(huán)播放
}).margin(5)
}
}.width('100%').height('100%')
}
}

審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
接口
+關(guān)注
關(guān)注
33文章
9546瀏覽量
157195 -
組件
+關(guān)注
關(guān)注
1文章
581瀏覽量
19041 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2979瀏覽量
46010
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-ArkTS的聲明式開(kāi)發(fā)范式
軌跡。狀態(tài)與數(shù)據(jù)管理狀態(tài)數(shù)據(jù)管理作為基于ArkTS的聲明式開(kāi)發(fā)范式的特色,通過(guò)功能不同的裝飾器給開(kāi)發(fā)者提供了清晰的頁(yè)面更新渲染流程和管道。狀態(tài)管理包括UI組件狀態(tài)和應(yīng)用程序狀態(tài),兩者協(xié)
發(fā)表于 01-17 15:09
HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-聲明式開(kāi)發(fā)范式組件匯總
組件是構(gòu)建頁(yè)面的核心,每個(gè)組件通過(guò)對(duì)數(shù)據(jù)和方法的簡(jiǎn)單封裝,實(shí)現(xiàn)獨(dú)立的可視、可交互功能單元。組件之間相互獨(dú)立,隨取隨用,也可以在需求相同的地方重復(fù)使用。聲明
發(fā)表于 01-19 11:14
鴻蒙ArkTS聲明式組件:Marquee
跑馬燈組件,用于滾動(dòng)展示一段單行文本。僅當(dāng)文本內(nèi)容寬度超過(guò)跑馬燈組件寬度時(shí)滾動(dòng),不超過(guò)時(shí)不滾動(dòng)。
鴻蒙ArkTS聲明式組件:PatternLock
圖案密碼鎖組件,以九宮格圖案的方式輸入密碼,用于密碼驗(yàn)證場(chǎng)景。手指在PatternLock組件區(qū)域按下時(shí)開(kāi)始進(jìn)入輸入狀態(tài),手指離開(kāi)屏幕時(shí)結(jié)束輸入狀態(tài)完成密碼輸入。
鴻蒙ArkTS聲明式組件:ImageAnimator
評(píng)論