0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙ArkTS聲明式組件:ImageAnimator

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-24 11:18 ? 次閱讀

ImageAnimator

提供幀動畫組件來實現(xiàn)逐幀播放圖片的能力,可以配置需要播放的圖片列表,每張圖片可以配置時長。

說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。

子組件

接口

ImageAnimator()

從API version 10開始,該接口支持在ArkTS卡片中使用。

屬性

除支持[通用屬性]外,還支持以下屬性:

參數(shù)名稱參數(shù)類型參數(shù)描述
imagesArray<[ImageFrameInfo]>設置圖片幀信息集合。每一幀的幀信息(ImageFrameInfo)包含圖片路徑、圖片大小、圖片位置和圖片播放時長信息,詳見ImageFrameInfo屬性說明。 默認值:[]**說明:**不支持動態(tài)更新。 從API version 10開始,該接口支持在ArkTS卡片中使用。
state[AnimationStatus]默認為初始狀態(tài),用于控制播放狀態(tài)。 默認值:AnimationStatus.Initial 從API version 10開始,該接口支持在ArkTS卡片中使用。
durationnumber單位為毫秒,默認時長為1000ms;duration為0時,不播放圖片;值的改變只會在下一次循環(huán)開始時生效;當images中任意一幀圖片設置了單獨的duration后,該屬性設置無效。 默認值:1000 從API version 10開始,該接口支持在ArkTS卡片中使用。
reverseboolean設置播放方向。false表示從第1張圖片播放到最后1張圖片; true表示從最后1張圖片播放到第1張圖片。 默認值:false 從API version 10開始,該接口支持在ArkTS卡片中使用。
fixedSizeboolean設置圖片大小是否固定為組件大小。 true表示圖片大小與組件大小一致,此時設置圖片的width 、height 、top 和left屬性是無效的。false表示每一張圖片的width 、height 、top和left屬性都要單獨設置。 默認值:true 從API version 10開始,該接口支持在ArkTS卡片中使用。
fillMode[FillMode]設置當前播放方向下,動畫開始前和結束后的狀態(tài),可選值參見FillMode說明。動畫結束后的狀態(tài)由fillMode和reverse屬性共同決定。例如,fillMode為Forwards表示停止時維持動畫最后一個關鍵幀的狀態(tài),若reverse為false則維持正播的最后一幀,即最后一張圖,若reverse為true則維持逆播的最后一幀,即第一張圖。 默認值:FillMode.Forwards 從API version 10開始,該接口支持在ArkTS卡片中使用。
iterationsnumber默認播放一次,設置為-1時表示無限次播放。 默認值:1

ImageFrameInfo對象說明

參數(shù)名稱參數(shù)類型必填參數(shù)描述
srcstring[Resource]9+
widthnumberstring
heightnumberstring
topnumberstring
leftnumberstring
durationnumber每一幀圖片的播放時長,單位毫秒。 默認值: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),動畫取消播放時觸發(fā)。 從API version 10開始,該接口支持在ArkTS卡片中使用。
onFinish(event: () => void)狀態(tài)回調(diào),動畫播放完成時觸發(fā)。 從API version 10開始,該接口支持在ArkTS卡片中使用。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

QQ瀏覽器截圖20240320150855.png

示例

// 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%')
  }
}

imageAnimator

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8257

    瀏覽量

    149961
  • 組件
    +關注

    關注

    1

    文章

    495

    瀏覽量

    17733
  • 鴻蒙
    +關注

    關注

    56

    文章

    2267

    瀏覽量

    42492
收藏 人收藏

    評論

    相關推薦

    HarmonyOS/OpenHarmony應用開發(fā)-ArkTS聲明開發(fā)范式

    軌跡。狀態(tài)與數(shù)據(jù)管理狀態(tài)數(shù)據(jù)管理作為基于ArkTS聲明開發(fā)范式的特色,通過功能不同的裝飾器給開發(fā)者提供了清晰的頁面更新渲染流程和管道。狀態(tài)管理包括UI組件狀態(tài)和應用程序狀態(tài),兩者協(xié)
    發(fā)表于 01-17 15:09

    HarmonyOS/OpenHarmony應用開發(fā)-聲明開發(fā)范式組件匯總

    組件是構建頁面的核心,每個組件通過對數(shù)據(jù)和方法的簡單封裝,實現(xiàn)獨立的可視、可交互功能單元。組件之間相互獨立,隨取隨用,也可以在需求相同的地方重復使用。聲明
    發(fā)表于 01-19 11:14

    鴻蒙ArkTS聲明組件:Blank

    空白填充組件,在容器主軸方向上,空白填充組件具有自動填充容器空余部分的能力。僅當父組件為Row/Column/Flex時生效。
    的頭像 發(fā)表于 06-19 16:21 ?395次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:Blank

    鴻蒙ArkTS聲明組件:Marquee

    跑馬燈組件,用于滾動展示一段單行文本。僅當文本內(nèi)容寬度超過跑馬燈組件寬度時滾動,不超過時不滾動。
    的頭像 發(fā)表于 06-25 15:52 ?281次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:Marquee

    鴻蒙ArkTS聲明組件:NavDestination

    作為NavRouter組件的子組件,用于顯示導航內(nèi)容區(qū)。
    的頭像 發(fā)表于 06-27 14:05 ?291次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:NavDestination

    鴻蒙ArkTS聲明組件:PatternLock

    圖案密碼鎖組件,以九宮格圖案的方式輸入密碼,用于密碼驗證場景。手指在PatternLock組件區(qū)域按下時開始進入輸入狀態(tài),手指離開屏幕時結束輸入狀態(tài)完成密碼輸入。
    的頭像 發(fā)表于 06-27 09:59 ?269次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:PatternLock

    鴻蒙ArkTS聲明組件:【RichText】

    富文本組件,解析并顯示HTML格式文本。
    的頭像 發(fā)表于 06-29 09:35 ?405次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:【RichText】

    鴻蒙ArkTS聲明組件:ScrollBar

    滾動條組件ScrollBar,用于配合可滾動組件使用,如List、Grid、Scroll。
    的頭像 發(fā)表于 07-01 15:52 ?336次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:ScrollBar

    鴻蒙ArkTS聲明組件:Span

    作為Text組件的子組件,用于顯示行內(nèi)文本的組件。
    的頭像 發(fā)表于 07-01 09:14 ?315次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:Span

    鴻蒙ArkTS聲明組件:StepperItem

    用作[Stepper]組件的頁面子組件。
    的頭像 發(fā)表于 07-02 17:47 ?289次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:StepperItem

    鴻蒙ArkTS聲明組件:TextArea

    多行文本輸入框組件,當輸入的文本內(nèi)容超過組件寬度時會自動換行顯示。
    的頭像 發(fā)表于 07-02 15:02 ?378次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextArea

    鴻蒙ArkTS聲明組件:TextInput

    單行文本輸入框組件。
    的頭像 發(fā)表于 07-03 09:14 ?470次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextInput

    鴻蒙ArkTS聲明組件:TextPicker

    滑動選擇文本內(nèi)容的組件
    的頭像 發(fā)表于 07-03 15:07 ?252次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextPicker

    鴻蒙ArkTS聲明組件:TextTimer

    通過文本顯示計時信息并控制其計時器狀態(tài)的組件。
    的頭像 發(fā)表于 07-03 17:06 ?318次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextTimer

    鴻蒙ArkTS聲明組件:XComponent

    可用于EGL/OpenGLES和媒體數(shù)據(jù)寫入,并顯示在XComponent組件。
    的頭像 發(fā)表于 07-05 09:56 ?361次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:XComponent