亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

[OpenHarmony北向應(yīng)用開發(fā)] 做一個(gè) loading加載動(dòng)畫

OpenHarmony開發(fā)經(jīng)驗(yàn) ? 來(lái)源: OpenHarmony開發(fā)經(jīng)驗(yàn) ? 作者: OpenHarmony開發(fā)經(jīng)驗(yàn) ? 2023-04-20 11:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • 本篇文章介紹了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的loading加載動(dòng)畫,并且在提供了一個(gè)demo工程供讀者下載學(xué)習(xí)。

    • loading加載動(dòng)畫demo下載地址: https://gitee.com/from-north-to-north/open-armony-north/tree/master/loading_animation
  • 作為一個(gè)OpenHarmony南向開發(fā)者,接觸北向應(yīng)用開發(fā)并不多。北向開發(fā)ArkUI老是改來(lái)改去,對(duì)筆者這樣的入門選手來(lái)說(shuō)學(xué)習(xí)成本其實(shí)非常大,希望后面可以慢慢穩(wěn)定下來(lái)吧。最近努力學(xué)習(xí)了一些,下面將學(xué)習(xí)經(jīng)驗(yàn)分享如下:

  • 通過(guò)本文您將了解:

    1、使用ImageAnimator幀動(dòng)畫組件實(shí)現(xiàn)一個(gè)自定義loading加載動(dòng)畫。

    2、使用 Progress 進(jìn)度條組件實(shí)現(xiàn) loading加載動(dòng)畫。


筆者開發(fā)環(huán)境:(demo ArkUI應(yīng)用源碼,一定得是以下IDE和SDK版本或者更高版本才能編譯運(yùn)行,這也是坑點(diǎn)之一!??!)

  • 開發(fā)板:潤(rùn)和軟件DAYU200開發(fā)板
  • OpenHarmony版本:OpenHarmony3.2 Beta5
  • IDE:DevEco Studio 3.1.0.200
  • SDK:API9(3.2.10.6)

效果演示

動(dòng)畫2.gif

1. 涉及到的知識(shí)點(diǎn) (先大概了解一下,知道要用到這些東西就行)

  • 創(chuàng)建自定義組件

    https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/arkts-create-custom-components.md

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/arkts-page-custom-components-lifecycle.md

  • ImageAnimator幀動(dòng)畫組件

    https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-imageanimator.md

  • Progress進(jìn)度條組件

    https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-progress.md

  • CustomDialogController自定義彈窗組件

    https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-methods-custom-dialog-box.md

  • 定時(shí)器API

    https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-timer.md

  • Row組件

    沿水平方向布局容器。https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md

  • OpenHarmony組件導(dǎo)讀

    https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-components-summary.md

2、使用ImageAnimator幀動(dòng)畫組件自定義loading動(dòng)畫開發(fā)步驟:

├── ets
│   ├── loading      # loading動(dòng)畫圖片幀
│   └── pages        # ets代碼
│       ├── Index.ets
│       ├── loadingComponent_part1.ets
│       ├── loadingComponent_part2.ets #ImageAnimator幀動(dòng)畫組件實(shí)現(xiàn)自定義loading加載動(dòng)畫
│       └── loadingComponent_part3.ets #Progress進(jìn)度條組件實(shí)現(xiàn)的loading加載動(dòng)畫

2.1 將自定義的loading動(dòng)畫的圖片幀放在ets目錄下

  • 組成自定義的loading動(dòng)畫的圖片幀,詳情請(qǐng)見文末提供的demo工程

    image.png

  • 在entry\\src\\main\\ets新建一個(gè)loading目錄,將其放在該目錄下

    image.png

2.2 用幀動(dòng)畫組件將動(dòng)畫封裝成一個(gè)自定義組件

//loadingComponent_part1.ets
 @Component

export default struct loadingComponent_part1 {
  private imageWidth: number | Resource = 0
  private imageHeight: number | Resource = 0

  build() {
    Column() {
      ImageAnimator()
        .images([
          {
            src: '/loading/loading01.png',
            duration: 200, //每一幀圖片的播放時(shí)長(zhǎng),單位毫秒
          },
          {
            src: '/loading/loading02.png',
            duration: 200,
          },
          {
            src: '/loading/loading03.png',
            duration: 200,
          },
          {
            src: '/loading/loading04.png',
            duration: 200,
          },
          {
            src: '/loading/loading05.png',
            duration: 200,
          },
          {
            src: '/loading/loading06.png',
            duration: 200,
          }])
        .width(this.imageWidth)
        .height(this.imageHeight)
        .iterations(-1)  
          //	設(shè)置播放順序。false表示從第1張圖片播放到最后1張圖片; true表示從最后1張圖片播放到第1張圖片。
        
        .fixedSize(true) 
          //設(shè)置圖片大小是否固定為組件大小。 true表示圖片大小與組件大小一致,此時(shí)設(shè)置圖片的width 、heighttopleft屬性是無(wú)效的。false表示每一張圖片的width 、heighttopleft屬性都要單獨(dú)設(shè)置。
        
        .reverse(true) 
          //設(shè)置播放順序。false表示從第1張圖片播放到最后1張圖片; true表示從最后1張圖片播放到第1張圖片。
        
        .fillMode(FillMode.None)
          //設(shè)置動(dòng)畫開始前和結(jié)束后的狀態(tài),可選值參見FillMode說(shuō)明
        
        .state(AnimationStatus.Running)  
          //Running表示動(dòng)畫處于播放狀態(tài)
    }
  }
}

2.3 在主頁(yè)面實(shí)現(xiàn)自定義的loading動(dòng)畫(完整代碼見文末demo工程)

  • 首先導(dǎo)入自定義的loading動(dòng)畫
import loading1 from './loadingComponent_part1';
struct Index {
  //用來(lái)繪制loading動(dòng)畫的
  // 要打開在點(diǎn)擊事件中添加 this.loading1.open();
  // 要關(guān)閉在點(diǎn)擊事件中添加 this.loading1.close();
  // 通過(guò)CustomDialogController類顯示自定義彈窗。
  private loading1: CustomDialogController = new CustomDialogController({
    builder: loadingProgress_part1(),
    alignment: DialogAlignment.Center,
    offset: ({ dx: 0, dy: 0 }),
    autoCancel: false,
    customStyle: true
  });
}

//用來(lái)繪制loading動(dòng)畫的
@CustomDialog
struct loadingProgress_part1{
  controller: CustomDialogController;

  build() {
    Column() {
      loading1({ imageWidth: 80,
        imageHeight: 80 }).margin({top:350})

    }
    .width('100%')
    .height('100%')
    .alignItems(HorizontalAlign.Center)
    .backgroundColor(Color.White)
  }

}
  • 使用定時(shí)器API控制loading動(dòng)畫
Button(this.message1)
          .margin({top:100})
          .fontWeight(FontWeight.Normal)
          .backgroundColor(Color.Green) //設(shè)置按鈕顏色
          .onClick(() => {

            //開始繪制loading動(dòng)畫
            this.loading1.open();
            //使用一個(gè)setTimeout定時(shí)器,setTimeout中第一個(gè)參數(shù)使用 () => { 要執(zhí)行的函數(shù) }
            //this.ocrDialog.close();是關(guān)閉loading動(dòng)畫
            setTimeout( () => {this.loading1.close();} , 3000);

          })
  • 實(shí)現(xiàn)效果

    動(dòng)畫2.gif

3、使用 Progress 進(jìn)度條組件實(shí)現(xiàn) loading加載動(dòng)畫開發(fā)步驟:

Progress進(jìn)度條組件

(完整代碼見文末demo工程)

struct Index {
  @State i: number = 0

  //aboutToAppear	函數(shù)在創(chuàng)建自定義組件的新實(shí)例后,在執(zhí)行其build函數(shù)之前執(zhí)行。
  aboutToAppear(){
    //定時(shí)器中的setInterval: 重復(fù)調(diào)用一個(gè)函數(shù),在每次調(diào)用之間具有固定的時(shí)間延遲。
    setInterval( () => {  this.i = this.i + 10  } , 300);
  }

  build() {
...

        Progress({ value: this.i, type: ProgressType.Linear })
          .width(200)
          .margin({top:30})

        Progress({ value: this.i, total: 150, type: ProgressType.ScaleRing })
          .color(Color.Green).value(this.i).width(50)
          .margin({top:30})
          .style({ strokeWidth: 15, scaleCount: 15, scaleWidth: 5 })
...
}

}
  • 實(shí)現(xiàn)效果

    動(dòng)畫2.gif

審核編輯 黃宇

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

    關(guān)注

    25

    文章

    6051

    瀏覽量

    111282
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3902

    瀏覽量

    20576
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【M-K1HSE開發(fā)板免費(fèi)體驗(yàn)】相關(guān)源碼之閱讀和分析1-使用XComponent + Vsync 實(shí)現(xiàn)自定義動(dòng)畫

    :收到 Vsync 信號(hào)后提交新幀到屏幕,保證流暢性。 主線程無(wú)關(guān):即使主線程因復(fù)雜布局或邏輯阻塞,動(dòng)畫仍能持續(xù)流暢運(yùn)行。 先看看這個(gè)項(xiàng)目: 這是這個(gè)項(xiàng)目的結(jié)構(gòu),文件。這是個(gè)非常典型的華為鴻蒙
    發(fā)表于 09-03 16:05

    向應(yīng)變計(jì)組是如何工作的,較單向應(yīng)變計(jì)有何優(yōu)勢(shì)

    在水利工程、大壩、橋梁等大型混凝土結(jié)構(gòu)的安全監(jiān)測(cè)中,全面了解結(jié)構(gòu)物內(nèi)部真實(shí)的應(yīng)力應(yīng)變狀態(tài)至關(guān)重要。傳統(tǒng)的單向應(yīng)變計(jì)只能測(cè)量單方向上的變形,而南京峟思工程儀器有限公司的VWS-S型振弦式多向應(yīng)變計(jì)組
    的頭像 發(fā)表于 07-18 13:32 ?910次閱讀
    多<b class='flag-5'>向應(yīng)</b>變計(jì)組是如何工作的,較單<b class='flag-5'>向應(yīng)</b>變計(jì)有何優(yōu)勢(shì)

    【匯思博SEEK100開發(fā)板試用體驗(yàn)】01 SEEK100開發(fā)板開箱&amp;簡(jiǎn)介

    和低功耗的應(yīng)用,可支持OpenHarmony標(biāo)準(zhǔn)系統(tǒng)。開發(fā)板支持藍(lán)牙、Wi-Fi、音頻、視頻、攝像頭等功能,可滿足廣泛的向應(yīng)開發(fā),也擁有
    發(fā)表于 07-03 22:28

    邀請(qǐng)函|2025校源行“師資培訓(xùn)”(南京站)暨江蘇省開源鴻蒙向應(yīng)開發(fā)技術(shù)師資培訓(xùn)

    信息系統(tǒng)股份有限公司,茲定于7月6-11日,在南京舉辦“2025開放原子校源行活動(dòng)(南京站)暨江蘇省開源鴻蒙向應(yīng)開發(fā)技術(shù)師資培訓(xùn)”。我們誠(chéng)摯邀請(qǐng)您撥冗參與,共同探索
    的頭像 發(fā)表于 06-12 17:29 ?665次閱讀
    邀請(qǐng)函|2025校源行“師資培訓(xùn)”(南京站)暨江蘇省開源鴻蒙<b class='flag-5'>北</b><b class='flag-5'>向應(yīng)</b>用<b class='flag-5'>開發(fā)</b>技術(shù)師資培訓(xùn)

    鴻蒙5開發(fā)寶藏案例分享---體驗(yàn)流暢的首頁(yè)信息流

    ?** 鴻蒙新聞?lì)愂醉?yè)開發(fā)全攻略:流暢動(dòng)效+懶加載實(shí)戰(zhàn)** Hey 各位鴻蒙開發(fā)者! 今天要分享個(gè)超實(shí)用的鴻蒙新聞?lì)愂醉?yè)
    發(fā)表于 06-12 11:42

    請(qǐng)問下,openharmony支持哪款龍芯的開發(fā)板?有沒有開源的龍芯的openharmony源碼?

    想買個(gè)2k0300的開發(fā)板學(xué)習(xí)龍芯和openharmony,愣是沒有看到提供openharmony源碼的,也沒與看到開源的代碼。gitee上,openharmony的龍芯sig倉(cāng)庫(kù)也是
    發(fā)表于 04-26 13:06

    如何成為名合格的KaihongOS向應(yīng)開發(fā)工程師

    如何成為名合格的向應(yīng)開發(fā)工程師 在快速發(fā)展的軟件開發(fā)領(lǐng)域,
    發(fā)表于 04-23 06:46

    DialogHub上線OpenHarmony開源社區(qū),高效開發(fā)鴻蒙應(yīng)用彈窗

    。 “DialogHub”的推出為開發(fā)者提供了個(gè)開箱即用的彈窗管理解決方案,幫助開發(fā)者更高效地實(shí)現(xiàn)各種場(chǎng)景下的彈窗功能,顯著降低學(xué)習(xí)成本與開發(fā)
    發(fā)表于 04-03 17:30

    鴻蒙開發(fā)OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置

    本文介紹OpenHarmony5.0 DevEco Studio開發(fā)工具安裝與配置,鴻蒙開發(fā)入門必備!由觸覺智能Purple Pi OH鴻蒙開發(fā)
    的頭像 發(fā)表于 03-28 18:05 ?1196次閱讀
    鴻蒙<b class='flag-5'>北</b>向<b class='flag-5'>開發(fā)</b><b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與配置

    OpenHarmony在應(yīng)用與游戲開發(fā)領(lǐng)域的前沿成果

    日前,由開放原子開源基金會(huì)主辦的第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽決賽路演在北京圓滿結(jié)束,作為第二屆開放原子大賽的重要賽項(xiàng)之,本屆賽事匯聚全球418支團(tuán)隊(duì),產(chǎn)出超過(guò)110個(gè)創(chuàng)新作品,集中
    的頭像 發(fā)表于 03-03 15:04 ?805次閱讀

    鴻蒙開發(fā)OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置

    OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置,鴻蒙開發(fā)入門必備!
    的頭像 發(fā)表于 02-07 17:35 ?1187次閱讀
    鴻蒙<b class='flag-5'>北</b>向<b class='flag-5'>開發(fā)</b><b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與配置

    如何成為名合格的向應(yīng)開發(fā)工程師

    在快速發(fā)展的軟件開發(fā)領(lǐng)域,向應(yīng)開發(fā)工程師是個(gè)專注于系統(tǒng)級(jí)應(yīng)用
    發(fā)表于 01-10 10:00

    用小安派 DSL做一個(gè)天氣站

    2.4 寸 320 *240 分辨率屏幕,外接 sht30 溫濕度傳感器,做一個(gè)天氣站。 01、主要功能 時(shí)間顯示(已完成) 天氣顯示(已完成) 溫濕度顯示(已完成) wifi 密碼保
    的頭像 發(fā)表于 01-06 16:44 ?769次閱讀
    用小安派 DSL<b class='flag-5'>做一個(gè)</b>天氣站

    鴻蒙原生頁(yè)面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    隨著HarmonyOS NEXT的正式推出,鴻蒙原生應(yīng)用開發(fā)熱度高漲,數(shù)量激增。但在三方應(yīng)用鴻蒙化進(jìn)程中,性能問題頻出。為此,HarmonyOS NEXT推出了整套原生頁(yè)面高性能解決方案,包括
    發(fā)表于 01-02 18:00

    在徐州工業(yè)職業(yè)技術(shù)學(xué)院,透見數(shù)智淮海的南秀

    貫通南向的基礎(chǔ)設(shè)施升級(jí)與向應(yīng)用落地,是數(shù)智徐州的獨(dú)特風(fēng)景
    的頭像 發(fā)表于 11-06 19:20 ?3527次閱讀
    在徐州工業(yè)職業(yè)技術(shù)學(xué)院,透見數(shù)智淮海的南秀<b class='flag-5'>北</b>雄