精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于ArkTS的應用入場動畫

系統 OpenHarmony
本期筆者將以一個輕量Demo的開發流程為例,與筆者共同探索如何利于ArkTS生產應用的入場動畫。


相信讀者對應用入場動畫并不陌生。當用戶打開某個應用時,應用得到響應,與此同時其在屏幕中所渲染的第一個畫面通常是它的入場動畫。當然,應用響應后所拋出的不一定是動畫,它也可以是一個靜態的頁面,不過不論是動畫還是靜態頁面,它們所起到的功能是相同的——在后臺完成應用中的重要模塊的初始化,貼出開發團隊的slogen,亦或展示一些甲方的產品推廣廣告。

本期筆者將以一個輕量Demo的開發流程為例,與筆者共同探索如何利于ArkTS生產應用的入場動畫。

創建工程

打開DevEco Studio(開發工具的版本必須支持API9),創建一個新的project,相關勾選如下:

添加新頁面

成功創建工程后,在工程文件目錄中打開目錄:Demo/entry/src/main/ets/pages, 接著右擊page,選擇New>TypeScript ArkTS File, 創建一個新的ArkTS文件,并將其命名為Second。

接著,在工程文件目錄中打開目錄:Demo/entry/src/resources/base/profile/main_pages,添加Second頁面的路徑信息。注意,字符串'pages/Index’后面的逗號不能漏寫。

編寫新頁面的UI

在編輯器中打開新創建的Second.ets,添加如下代碼:
@Entry
@Component
struct Index {
  @State message: string = '主頁面'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(40)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
    .backgroundColor('#F1F1F1')
  }
}

事實上,這段代碼來自于Index.ets, 我們只不過是將Index.ets的代碼拷貝至Second.ets中后,修改了變量message的初值,并更換了頁面的背景色。由于Second.ets所管理的頁面在此次的開發案例中不是主角,所以我們簡單設計一下它的UI就足夠了。

Second.ets的最終預覽效果如下:

編寫入場頁面的UI

加入圖片資源

Before coding,我們需要添加一份圖片資源到工程的指定目錄內。

在工程文件目錄中打開目錄:Demo/entry/src/main/resources/rawfile, 添加一張任意的圖片(可以在IDE中將待添加的圖片資源直接粘貼至rawfile目錄下,也可以在文件資源管理器中通過文件路徑打開rawfile目錄并添加圖片資源),將其命名為logo1。當然,圖片的格式沒有要求,只要在之后的步驟中能被正確引用即可。

添加組件

在編輯器中打開Index.ets(此頁面將作為入場頁面), 刪除Column組件內關于Text組件的代碼塊,增添一個新的Image件和一個新的Text組件,并填充它們的UI屬性,相關代碼如下。其中,新增的Image組件所引用的圖片資源是上一個步驟中所添加的logo1.jpg。

@Entry
@Component
struct First {
  @State message: string = 'Hello World'

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

        Image($rawfile('logo1.jpg'))
          .height(120)
          .width(120)

        Text('Brunhild')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .margin({
            top:7
          })

      }
      .width('100%')
    }
    .height('100%')
  }
}

預覽器效果如下:

至此,我們已完成對Index.ets的頁面UI繪制。接下來,我們需要為這兩個新添的組件設置與屬性動畫有關的屬性。屬性動畫(animation)是ArkUI提供的最基礎和常用的動畫功能之一,它的功能邏輯是,當組件的布局屬性(譬如位置,大小,背景顏色)發生變化時,組件會按照已設置好的動畫參數,從原有的布局狀態過渡到變化后的布局狀態,而這個過渡的擬連續過程便是用戶所見到的動畫。在這個基礎上,我們可以制作一個簡單的應用入場動畫效果。

添加關鍵屬性

所涉及的兩個重要屬性分別是translate屬性和animation屬性。

事實上,系統為每個被渲染的組件都設置屬于它的相對坐標系。這個坐標系是一個平面直角坐標系,并且,相對于屏幕,X坐標軸正方向水平向右,Y坐標軸正方向豎直向下。當一個組件的translate屬性被設置時,它的實際位置會跟著translate屬性而偏移。比如,一個原本位于屏幕中央的組件,更改其translate屬性為{x:100,y:0}后,其位置會相對屏幕中央往右平移100px。

animation屬性的可供設置的參數如下所示,每個參數都會在不同維度影響動畫的最終效果

/**
   * Animation duration, in ms.
   * @since 7
   */
  /**
   * Animation duration, in ms.
   * @form
   * @since 9
   */
  duration?: number;
  /**
   * Animation playback speed. A larger value indicates faster animation playback, and a smaller value indicates slower
   * animation playback. The value 0 means that there is no animation.
   * @since 7
   */
  tempo?: number;
  /**
   * Animation curve.
   * @type { string | Curve}
   * @since 7
   */
  /**
   * Animation curve.
   * @type { string | Curve | ICurve}
   * @form
   * @since 9
   */
  curve?: Curve | string | ICurve;
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @since 7
   */
  delay?: number;
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @since 7
   */
  iterations?: number;
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @since 7
   */
  /**
   * Animation playback mode. By default, the animation is played from the beginning after the playback is complete.
   * @form
   * @since 9
   */
  playMode?: PlayMode;
  /**
   * Callback invoked when the animation playback is complete.
   * @since 7
   */
  /**
   * Callback invoked when the animation playback is complete.
   * @form
   * @since 9
   */
  onFinish?: () => void;

接下來,我們為組件添加關鍵屬性。

首先,定義變量 translateY_Logo,同時設置Image組件的translate屬性和animation屬性。

@Entry
@Component
struct First {

      ......

  @State translateY_Logo:number = -200    //定義一個用@state修飾的number型變量translateY_Logo

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

        Image($rawfile('logo1.jpg'))
          .height(120)
          .width(120)
          //添加關鍵屬性
          .translate({
            y:this.translateY_Logo
          })
          .animation({
            //播放時長(ms)
            duration:2000,
            //播放速度
            tempo:1,
            //播放曲線,所選擇的是‘快出慢入’
            curve:Curve.FastOutSlowIn,
            //延遲(ms)
            delay:500,
            //循環次數(-1為無限循環)
            iterations:1,
            //播放模式
            playMode:PlayMode.Normal
          })

            ......

      }
      .width('100%')
    }
    .height('100%')
  }
}

接著,定義變量 translateY_Title,同時設置Text組件的translate屬性和animation屬性。

@Entry
@Component
struct First {

        ......

  @State translateY_Title:number = 200    //定義一個用@state修飾的number型變量translateY_Title

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

          ......

        Text('Brunhild')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .margin({
            top:7
          })
          //添加關鍵屬性
          .translate({
            y:this.translateY_Title
          })
          .animation({
            delay:500,
            duration:2000,
            curve:Curve.FastOutSlowIn,
            tempo:1,
          })



      }
      .width('100%')
    }
    .height('100%')
  }
}

頁面起始狀態的效果如下,可以看到,設置translate屬性后,Image組件往Y軸負方向偏移,Text組件則往Y軸正方向偏移。

最后,我們為Text組件添加onAppear回調。onAppear可以被理解為一個事件監聽器,當一個綁定了onAppear的組件裝載于顯示器時,onAppear回調將被觸發,執行onAppear()中所傳入的操作語句。換句話說,Text組件在添加onAppear屬性后,當此Text組件出現時(筆者也不清楚這個出現是如何定義的),onAppear立即觸發,執行已寫入的函數參數(即λ表達式中的內容)。

在如下代碼中,筆者為Text組件增加了onAppear回調,導入了router模塊,并寫入了相關操作語句:首先,改變Image組件和Text組件的translate屬性,激活屬性動畫;之后,設置定時器(每4秒執行一次),使得系統在屬性動畫結束后執行頁面跳轉(跳轉至Second頁面);最后,銷毀先前設置的定時器。

import router from '@ohos.router';     //導入router模塊

@Entry
@Component
struct First {

        ......

  @State translateY_Title:number = 200    //定義一個用@state修飾的number型變量translateY_Title

  build() {
    Row() {
      Column() {

        //刪除頁面初始化時默認帶有的Text組件, 增加一個新的image件和一個新的Text組件

          ......

        Text('Brunhild')
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .margin({
            top:7
          })
          //添加關鍵屬性
          .translate({
            y:this.translateY_Title
          })
          .animation({
            delay:500,
            duration:2000,
            curve:Curve.FastOutSlowIn,
            tempo:1,
          })
          //增加onAppear回調
          .onAppear(()=>{
              //改變屬性參數
            this.translateY_Logo = 0
            this.translateY_Title = 0

            //設置定時器
            let id = setInterval(()=>{
                //打印日志
              console.info('router to Second')
              //頁面跳轉
              router.pushUrl({
                url:'pages/Second'
              })
              //定時器執行之后立即銷毀
              clearInterval(id)
            },4000,[])
          })


      }
      .width('100%')
    }
    .height('100%')
  }
}

至此,一個關于入場動畫的Demo便完成了。

預覽效果如下:


結語

ArkTS的動畫開發無疑是非常有趣的,如果讀者想開發更加復雜的動畫效果,不妨參考ArkTS的官方API文檔,學習和玩轉更多新奇的用法。文章所述僅代表個人理解。
責任編輯:姜華 來源: 鴻蒙開發者社區
相關推薦

2023-10-17 13:49:36

ArkTS動畫開發

2024-05-31 08:43:31

2017-06-12 08:12:18

筆記本聯想ThinkPad

2023-07-31 17:35:31

ArkTS鴻蒙

2012-07-31 09:55:26

Emotion UI華為

2022-02-25 14:57:33

harmonyOSjava心形動畫

2017-06-07 10:28:30

諸葛io數據分析數據應用

2014-04-04 14:40:45

招聘

2012-07-25 13:28:19

ibmdw

2016-01-20 10:11:56

華麗CanvasHTML5

2024-05-21 08:04:50

ArkTS鴻蒙應用開發語言

2014-04-30 10:48:21

Paper動畫引擎Pop

2011-08-29 17:17:00

Android應用gif快手iPhone應用

2017-08-03 13:36:22

2024-03-19 08:45:45

WebSocketSpring應用開發

2009-05-20 14:48:07

ibmdwEclipse開發技巧

2009-02-03 11:21:58

2009-01-18 09:56:10

WebSphereJava EEJ2EE自動部署

2017-11-22 14:08:23

OVSVLAN虛擬化網

2014-12-10 09:46:31

輕量級操作系統Adobe Chrome OS
點贊
收藏

51CTO技術棧公眾號

美女尤物国产一区| 国产精品成人3p一区二区三区| 9色porny自拍视频一区二区| 91po在线观看91精品国产性色| 成人片黄网站色大片免费毛片| 欧美大胆成人| 亚洲人成网站色在线观看| 国产精品免费一区二区三区四区| 国产精品乱子伦| 天天综合一区| 亚洲精品久久久久国产| 五月天中文字幕在线| 超碰中文在线| 日本一区二区三区国色天香 | 国产视频自拍一区| 中文字幕一区二区在线观看视频| av3级在线| 中文一区二区在线观看| 精品国产日本| 国产女18毛片多18精品| 日韩中文欧美在线| 国内精品模特av私拍在线观看| 91大神福利视频| 岳的好大精品一区二区三区| 日韩三区在线观看| 777一区二区| 中文字幕在线看片| 亚洲午夜久久久久久久久电影网 | 国产写真视频在线观看| 久久中文娱乐网| 国产成人免费观看| a天堂中文在线观看| 日韩av一区二区在线影视| 97视频在线观看免费高清完整版在线观看| 91禁男男在线观看| 波多野结衣在线观看一区二区| 亚洲精品www| 精人妻一区二区三区| 成人av在线播放| 精品视频在线看| 亚洲xxxx2d动漫1| 免费观看成人性生生活片| 狠狠干狠狠久久| 老太脱裤子让老头玩xxxxx| 91cn在线观看| 亚洲精品免费在线观看| 日本午夜精品一区二区| 视频一区二区三区在线看免费看| 国产精品资源站在线| 国产在线拍揄自揄视频不卡99| 久久精品99北条麻妃| 日日夜夜免费精品| 国产精品成熟老女人| 亚洲视频 欧美视频| 免费视频一区二区三区在线观看| 97精品视频在线| 精品国产免费观看| 国产精品视频久久一区| 欧美亚洲国产另类| 影音先锋在线国产| 日韩专区中文字幕一区二区| 国产v综合v亚洲欧美久久| 丰满少妇xoxoxo视频| 日日夜夜精品免费视频| 国产日本欧美一区二区三区在线| 国产乱码在线观看| 美女视频一区二区| 91久久久在线| 性一交一乱一色一视频麻豆| 国产不卡视频一区| 久久久久久精| 国产一级二级三级在线观看| 中文字幕巨乱亚洲| 国产又黄又爽免费视频| 欧美1—12sexvideos| 午夜成人免费视频| 老头吃奶性行交视频| 福利一区在线| 欧美成人性福生活免费看| 亚洲精品国产成人av在线| 偷窥自拍亚洲色图精选| 国产一区二区三区三区在线观看 | 神马午夜在线观看| 久久女同精品一区二区| 夜夜爽99久久国产综合精品女不卡| 免费av在线网址| 亚洲国产日韩综合久久精品| 91丨porny丨探花| 欧美日韩精品免费观看视欧美高清免费大片| 色琪琪一区二区三区亚洲区| 久久久精品高清| 99re8这里有精品热视频8在线| 日韩久久午夜影院| 精品在线观看一区| 亚洲精选成人| 国产欧美精品在线播放| 人人妻人人玩人人澡人人爽| 久久久亚洲精品一区二区三区| www亚洲国产| 三级在线观看视频| 91精品国产综合久久久蜜臀图片| 2一3sex性hd| 91精品国产成人观看| 欧美一区二区三区免费视| 夜夜骚av一区二区三区| 波多野结衣在线aⅴ中文字幕不卡| 欧美在线日韩精品| 国产蜜臀av在线播放| 欧美日韩精品一区二区三区| 久久久久亚洲av成人网人人软件| 欧美精选视频在线观看| 国产做受69高潮| 国产精品亚洲欧美在线播放| 亚洲一区 视频| 亚洲人成人77777线观看| 欧美综合在线观看| 亚洲美女精品久久| 在线视频中文字幕一区二区| 久久亚洲一区二区三区四区| 久久精品午夜| 欧美a在线观看| 亚洲一区视频在线| 亚洲天堂2018av| 欧美人体视频| 久久视频免费观看| 无码久久精品国产亚洲av影片| 国产成人在线免费观看| 亚洲一卡二卡三卡| 免费欧美电影| 亚洲欧美成人网| 国产在线观看免费av| 国精产品一区一区三区mba视频| 欧美日韩大片一区二区三区| www555久久| 日韩欧美国产一区二区三区| 欧美性生给视频| 日韩av中文在线观看| 久久久综合亚洲91久久98| 欧美人与性动交α欧美精品济南到| 欧美性色aⅴ视频一区日韩精品| 久久人人爽人人爽人人片 | 国产.欧美.日韩| 最新精品视频| 精品国模一区二区三区欧美| 久久精品国产视频| 91激情在线观看| 日韩美女视频一区二区 | 成人高清视频在线| 国产自产在线视频| www.成人网| 久久免费在线观看| 亚洲 欧美 精品| 欧美午夜精品久久久久久久| 7788色淫网站小说| 国产一区成人| 欧美日韩综合精品| 在线成人视屏| 日韩在线观看免费av| 亚洲一区二区视频在线播放| 国产精品色噜噜| 国产永久免费网站| 91超碰成人| y111111国产精品久久婷婷| 黄网在线免费看| 日韩国产精品一区| 国产女主播喷水视频在线观看| 国产性做久久久久久| 亚洲xxxx2d动漫1| 影视一区二区| 国内不卡一区二区三区| 在线观看毛片网站| 日韩欧美在线中字| 国产91在线高潮白浆在线观看| 精品电影在线| 欧美日韩一区视频| 欧美日韩精品在线观看视频 | 在线一区二区观看| 日韩三级在线观看视频| 国产不卡在线播放| 亚洲色精品三区二区一区| 日韩久久电影| 国产v亚洲v天堂无码| 高清不卡av| 久久天天躁狠狠躁夜夜躁| 亚洲精品久久久蜜桃动漫| 欧美丝袜一区二区三区| 黄色精品视频在线观看| 成人黄色国产精品网站大全在线免费观看 | 午夜电影一区二区三区| 欧美激情 一区| 国产成人午夜精品影院观看视频 | 久久久免费人体| 欧美激情一级精品国产| 欧美精品久久久久久久久久丰满| 欧美日韩视频在线一区二区| 久久久久久免费观看| 国产日本欧美一区二区| 国产a级片视频| 开心九九激情九九欧美日韩精美视频电影 | 欧美另类专区| 神马影院我不卡| 国语一区二区三区| 国产日韩换脸av一区在线观看| 国产后进白嫩翘臀在线观看视频| 亚洲视频在线看| 日批视频免费播放| 制服丝袜一区二区三区| 免费视频久久久| 一区二区三区日韩欧美精品| 先锋影音av在线| av中文字幕亚洲| 两性午夜免费视频| 男女男精品网站| 97av视频在线观看| 欧美日韩精选| 免费观看中文字幕| 日韩情爱电影在线观看| 欧美lavv| 欧亚精品一区| 国产精品免费一区二区三区在线观看 | 日本在线视频站| 亚洲欧美成人网| 午夜影院免费体验区| 日韩美女视频在线| 99在线观看免费| 欧美日韩www| 国产精品第6页| 日韩欧美在线字幕| 亚洲精品午夜国产va久久成人| 亚洲一区二区在线观看视频| 亚洲精品一区二区三区在线播放| 国产清纯白嫩初高生在线观看91 | 奇米777在线视频| 麻豆精品国产91久久久久久| 久久久久久久少妇| 免费看的黄色欧美网站| 成人观看免费完整观看| 亚洲第一黄色| 霍思燕三级露全乳照| 影音先锋中文字幕一区| 欧美 日韩 国产精品| 午夜国产精品视频| 台湾无码一区二区| 国模吧视频一区| 激情六月天婷婷| 欧美性色综合| 欧美又粗又长又爽做受| 亚洲天堂激情| 国产96在线 | 亚洲| 99国产一区| 99福利在线观看| 久久久精品网| 艹b视频在线观看| 久久成人免费日本黄色| 久久6免费视频| 国产一区二区福利视频| 黄色三级视频在线播放| 国产99久久精品| 亚洲成av人片在线观看无| 99久久精品情趣| 深爱五月激情网| 中文字幕乱码亚洲精品一区| 99热99这里只有精品| 亚洲人精品一区| 国产午夜视频在线播放| 欧美日韩亚洲精品内裤| 国产精品xxxxxx| 91精品国产综合久久久久久| 亚洲精品久久久久久久久久久久久久 | 999国产精品999久久久久久| 在线看无码的免费网站| 欧美体内she精视频在线观看| 青青在线免费观看| 久久激情一区| 精品综合久久久久| 播五月开心婷婷综合| 69视频在线观看免费| 亚洲摸摸操操av| 日韩精品乱码久久久久久| 色婷婷狠狠综合| 国产女人18毛片水真多| 亚洲国产精品推荐| av在线免费播放网站| 欧美成人性色生活仑片| 精品人人视频| 国产一区私人高清影院| 成人激情自拍| 亚洲免费久久| aa亚洲婷婷| 在线一区二区不卡| 91丨porny丨首页| 在线看的片片片免费| 欧美视频第一页| 国产又粗又长视频| 国产丝袜视频一区| 中文字幕伦理免费在线视频| 日本精品免费一区二区三区| 精品国模一区二区三区欧美| 欧美日韩精品久久久免费观看| 99国产精品免费视频观看| 成人在线免费在线观看| 国产乱一区二区| 亚洲精品一区二区三区影院忠贞| 一区二区三区日韩| 中文字幕人成人乱码亚洲电影| 亚洲电影天堂av| 国产区在线观看| 国产精品久久久久久久久久| 另类春色校园亚洲| 免费成人进口网站| 蜜乳av一区二区三区| 中文字幕一区二区人妻在线不卡| 亚洲精品视频在线| 亚洲无码精品国产| 亚洲欧美激情精品一区二区| 国产丝袜精品丝袜| 91蜜桃网站免费观看| 色乱码一区二区三区网站| 乱子伦视频在线看| a亚洲天堂av| 日韩精品一区二区在线播放| 欧美高清www午色夜在线视频| 搞黄视频免费在线观看| 777777777亚洲妇女| 丁香综合av| 国产毛片久久久久久国产毛片| 国产在线国偷精品产拍免费yy| 国产精成人品免费观看| 色综合久久九月婷婷色综合| 天天射天天操天天干| 久久久亚洲国产天美传媒修理工| 精品国产三级| 桥本有菜av在线| 精品影院一区二区久久久| 欧美日韩生活片| 欧美色欧美亚洲另类二区| 国产小视频在线| 国产精品av网站| 国产免费久久| 男人女人黄一级| 国产婷婷精品av在线| 国产免费一级视频| 亚洲热线99精品视频| 写真福利精品福利在线观看| 美女主播视频一区| 老司机久久99久久精品播放免费| theav精尽人亡av| 色偷偷久久人人79超碰人人澡| 日本五码在线| 国产精品久久久久久久久久久不卡| 亚洲精华一区二区三区| 成年人黄色片视频| 国产精品沙发午睡系列990531| 中文在线免费观看| 日韩视频一区在线| 麻豆视频久久| 黄色一级视频在线播放| 91美女在线观看| 午夜一级黄色片| 久久视频国产精品免费视频在线| 欧美第一在线视频| 国产a级片网站| 久久久久免费观看| 中文字幕在线日亚洲9| 欧美成人合集magnet| 风间由美一区二区av101| 欧美色图色综合| 国产欧美精品一区二区三区四区| 亚洲字幕av一区二区三区四区| 久久精品一偷一偷国产| 国产+成+人+亚洲欧洲在线| 免费成人午夜视频| 国产精品天天看| www.com在线观看| 欧美亚洲国产另类| 午夜片欧美伦| 少妇激情一区二区三区视频| 欧美在线一区二区| av大全在线| 欧美激情一区二区三区在线视频| 免费不卡在线视频| 久久免费黄色网址| 亚洲最新在线视频| 日本在线成人| 男女视频一区二区三区| 亚洲欧美精品午睡沙发| 婷婷丁香一区二区三区| 国产精品尤物福利片在线观看| 欧美日韩午夜| 国产精品成人无码免费| 精品国产免费一区二区三区香蕉| 色戒汤唯在线| 狠狠干视频网站| 日本一区二区三区四区在线视频 | 亚洲日本中文字幕免费在线不卡| 老司机精品视频网| 69堂免费视频| 亚洲老司机在线| av女优在线| 蜜桃免费一区二区三区|