提供幀動畫組件來實現(xiàn)逐幀播放圖片的能力,可以配置需要播放的圖片列表,每張圖片可以配置時長。
說明:
該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。
子組件
無
接口
ImageAnimator()
從API version 10開始,該接口支持在ArkTS卡片中使用。
屬性
除支持通用屬性外,還支持以下屬性:
參數(shù)名稱 | 參數(shù)類型 | 參數(shù)描述 |
---|---|---|
images | Array<ImageFrameInfo> | 設(shè)置圖片幀信息集合。每一幀的幀信息(ImageFrameInfo)包含圖片路徑、圖片大小、圖片位置和圖片播放時長信息,詳見ImageFrameInfo屬性說明。 默認值:[] 說明: 不支持動態(tài)更新。 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
state | AnimationStatus | 默認為初始狀態(tài),用于控制播放狀態(tài)。 默認值:AnimationStatus.Initial 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
duration | number | 單位為毫秒,默認時長為1000ms;duration為0時,不播放圖片;值的改變只會在下一次循環(huán)開始時生效;當images中任意一幀圖片設(shè)置了單獨的duration后,該屬性設(shè)置無效。 默認值:1000 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
reverse | boolean | 設(shè)置播放方向。false表示從第1張圖片播放到最后1張圖片;?true表示從最后1張圖片播放到第1張圖片。 默認值:false 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
fixedSize | boolean | 設(shè)置圖片大小是否固定為組件大小。?true表示圖片大小與組件大小一致,此時設(shè)置圖片的width?、height?、top?和left屬性是無效的。false表示每一張圖片的width?、height?、top和left屬性都要單獨設(shè)置。 默認值:true 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
preDecode(deprecated) | number | 預解碼的圖片數(shù)量。例如該值設(shè)為2,則播放當前頁時會提前加載后面兩張圖片至緩存以提升性能。 從API version 9開始廢棄。 默認值:0 |
fillMode | FillMode | 設(shè)置當前播放方向下,動畫開始前和結(jié)束后的狀態(tài),可選值參見FillMode說明。動畫結(jié)束后的狀態(tài)由fillMode和reverse屬性共同決定。例如,fillMode為Forwards表示停止時維持動畫最后一個關(guān)鍵幀的狀態(tài),若reverse為false則維持正播的最后一幀,即最后一張圖,若reverse為true則維持逆播的最后一幀,即第一張圖。 默認值:FillMode.Forwards 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
iterations | number | 默認播放一次,設(shè)置為-1時表示無限次播放。 默認值:1 |
ImageFrameInfo對象說明
參數(shù)名稱 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
src | string |?Resource9+ | 是 | 圖片路徑,圖片格式為svg,png和jpg,從API Version9開始支持Resource類型的路徑。 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
width | number?|?string | 否 | 圖片寬度。 默認值:0 從API version 10開始,該接口支持在ArkTS卡片中使用 |
height | number?|?string | 否 | 圖片高度。 默認值:0 從API version 10開始,該接口支持在ArkTS卡片中使用 |
top | number?|?string | 否 | 圖片相對于組件左上角的縱向坐標。 默認值:0 從API version 10開始,該接口支持在ArkTS卡片中使用 |
left | number?|?string | 否 | 圖片相對于組件左上角的橫向坐標。 默認值:0 從API version 10開始,該接口支持在ArkTS卡片中使用 |
duration | number | 否 | 每一幀圖片的播放時長,單位毫秒。 默認值:0 |
事件
除支持通用事件外,還支持以下事件:
名稱 | 功能描述 |
---|---|
onStart(event:?()?=>?void) | 狀態(tài)回調(diào),動畫開始播放時觸發(fā)。 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
onPause(event:?()?=>?void) | 狀態(tài)回調(diào),動畫暫停播放時觸發(fā)。 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
onRepeat(event:?()?=>?void) | 狀態(tài)回調(diào),動畫重復播放時觸發(fā)。 |
onCancel(event:?()?=>?void) | 狀態(tài)回調(diào),動畫返回最初狀態(tài)時觸發(fā)。 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
onFinish(event:?()?=>?void) | 狀態(tài)回調(diào),動畫播放完成時或者停止播放時觸發(fā)。 從API version 10開始,該接口支持在ArkTS卡片中使用。 |
示例
// 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 // 顯示當前幀圖片
}).margin(5)
Button('stop').width(100).padding(5).onClick(() => {
this.state = AnimationStatus.Stopped // 顯示動畫的起始幀圖片
}).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%')
}
}
最后,有很多小伙伴不知道學習哪些鴻蒙開發(fā)技術(shù)?不知道需要重點掌握哪些鴻蒙應用開發(fā)知識點?而且學習時頻繁踩坑,最終浪費大量時間。所以有一份實用的鴻蒙(Harmony NEXT)資料用來跟著學習是非常有必要的。?
這份鴻蒙(Harmony NEXT)資料包含了鴻蒙開發(fā)必掌握的核心知識要點,內(nèi)容包含了(ArkTS、ArkUI開發(fā)組件、Stage模型、多端部署、分布式應用開發(fā)、音頻、視頻、WebGL、OpenHarmony多媒體技術(shù)、Napi組件、OpenHarmony內(nèi)核、Harmony南向開發(fā)、鴻蒙項目實戰(zhàn)等等)鴻蒙(Harmony NEXT)技術(shù)知識點。
希望這一份鴻蒙學習資料能夠給大家?guī)韼椭?,有需要的小伙伴自行領(lǐng)取,限時開源,先到先得~無套路領(lǐng)?。?!
?獲取這份完整版高清學習路線,請點擊→純血版全套鴻蒙HarmonyOS學習資料
鴻蒙(Harmony NEXT)最新學習路線
-
?HarmonOS基礎(chǔ)技能
-
HarmonOS就業(yè)必備技能?
- ?HarmonOS多媒體技術(shù)
- 鴻蒙NaPi組件進階
- HarmonOS高級技能
-
初識HarmonOS內(nèi)核?
- 實戰(zhàn)就業(yè)級設(shè)備開發(fā)
有了路線圖,怎么能沒有學習資料呢,小編也準備了一份聯(lián)合鴻蒙官方發(fā)布筆記整理收納的一套系統(tǒng)性的鴻蒙(OpenHarmony )學習手冊(共計1236頁)與鴻蒙(OpenHarmony )開發(fā)入門教學視頻,內(nèi)容包含:ArkTS、ArkUI、Web開發(fā)、應用模型、資源分類…等知識點。
獲取以上完整版高清學習路線,請點擊→純血版全套鴻蒙HarmonyOS學習資料
《鴻蒙 (OpenHarmony)開發(fā)入門教學視頻》
《鴻蒙生態(tài)應用開發(fā)V2.0白皮書》
《鴻蒙 (OpenHarmony)開發(fā)基礎(chǔ)到實戰(zhàn)手冊》
OpenHarmony北向、南向開發(fā)環(huán)境搭建
?《鴻蒙開發(fā)基礎(chǔ)》
- ArkTS語言
- 安裝DevEco Studio
- 運用你的第一個ArkTS應用
- ArkUI聲明式UI開發(fā)
- .……
?《鴻蒙開發(fā)進階》
- Stage模型入門
- 網(wǎng)絡管理
- 數(shù)據(jù)管理
- 電話服務
- 分布式應用開發(fā)
- 通知與窗口管理
- 多媒體技術(shù)
- 安全技能
- 任務管理
- WebGL
- 國際化開發(fā)
- 應用測試
- DFX面向未來設(shè)計
- 鴻蒙系統(tǒng)移植和裁剪定制
- ……
《鴻蒙進階實戰(zhàn)》
- ArkTS實踐
- UIAbility應用
- 網(wǎng)絡案例
- ……
?獲取以上完整鴻蒙HarmonyOS學習資料,請點擊→純血版全套鴻蒙HarmonyOS學習資料
總結(jié)
總的來說,華為鴻蒙不再兼容安卓,對中年程序員來說是一個挑戰(zhàn),也是一個機會。只有積極應對變化,不斷學習和提升自己,他們才能在這個變革的時代中立于不敗之地。?文章來源:http://www.zghlxwxcb.cn/news/detail-840027.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-840027.html
到了這里,關(guān)于鴻蒙Harmony應用開發(fā)—ArkTS聲明式開發(fā)(基礎(chǔ)手勢:ImageAnimator)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!