在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

ArkUI開發(fā)框架的動(dòng)畫能力

OpenAtom OpenHarmony ? 來(lái)源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-06-17 11:44 ? 次閱讀

動(dòng)畫是 UI 界面的重要元素之一,精心設(shè)計(jì)的動(dòng)畫能使 UI 界面更直觀,有助于改進(jìn)應(yīng)用程序的外觀并改善用戶體驗(yàn)。

ArkUI 開發(fā)框架為開發(fā)者提供了豐富的動(dòng)畫能力,如屬性動(dòng)畫、轉(zhuǎn)場(chǎng)動(dòng)畫及自定義動(dòng)畫等。這些動(dòng)畫能力幫助開發(fā)者美化了 UI 界面,但不適用于繪制某些比較復(fù)雜的動(dòng)畫,例如,屬性動(dòng)畫主要針對(duì)動(dòng)畫的通用屬性進(jìn)行動(dòng)態(tài)變化,內(nèi)容動(dòng)效不夠豐富,且變更時(shí)需要修改或重寫代碼;Gif 動(dòng)態(tài)圖放大后鋸齒明顯,精度越高占用存儲(chǔ)空間越大,直接影響安裝包的大小;svg 動(dòng)畫 DOM 節(jié)點(diǎn)多開銷大,缺乏與用戶的交互。因此,我們引入了比較成熟的 Lottie 組件,提升了 ArkUI 開發(fā)框架的動(dòng)畫能力。

1. Lottie介紹

Lottie 組件效果如下所示:

1.1 什么是Lottie?

Lottie 是一款能夠?yàn)閼?yīng)用添加動(dòng)畫的開源組件,它可以解析 AE(After Effects)導(dǎo)出的 json 文件,讓復(fù)雜的動(dòng)畫資源輕松運(yùn)行在應(yīng)用程序中。如圖 1 所示,動(dòng)畫文件通過 AE 的 bodymovin 插件轉(zhuǎn)換成通用的 json 格式描述文件后,應(yīng)用開發(fā)者只需使用 Lottie 解析 json 文件,就能將動(dòng)畫繪制出來(lái)。

c3d43884-d83e-11ec-ba43-dac502259ad0.png

圖1 整體流程

1.2 Lottie繪制流程

Lottie 解析 json 格式的動(dòng)畫描述文件后,會(huì)基于 canvas 畫布進(jìn)行 2D 渲染,并結(jié)合原生組件 Animator 實(shí)現(xiàn)動(dòng)畫效果。具體繪制流程如下圖 2 所示:

c3ff2f4e-d83e-11ec-ba43-dac502259ad0.png

圖2 lottie繪制流程

1.動(dòng)畫加載準(zhǔn)備,在使用 Lottie 加載動(dòng)畫前需先通過插件 bodymovin 將 AE 生成的動(dòng)畫文件轉(zhuǎn)換為通用的 json 格式描述文件。開發(fā)者也可以從互聯(lián)網(wǎng)獲取合適的動(dòng)畫資源直接應(yīng)用, 比如:

https://lottiefiles.com/https://lottiefiles.com/https://lottiefiles.com/

2. 獲取 json 文件中的動(dòng)畫數(shù)據(jù)。

3. 解析 json 文件中的動(dòng)畫數(shù)據(jù)。

4. 創(chuàng)建動(dòng)畫實(shí)例,設(shè)置動(dòng)畫信息。

5. 初始化布局寬高,設(shè)置繪制樣式等信息。

6. 啟動(dòng)動(dòng)畫,觸發(fā)逐幀繪制。

7. 更新動(dòng)畫進(jìn)度。

8. 返回動(dòng)畫實(shí)例,通過 loadAnimation() 接口返回動(dòng)畫實(shí)例 AnimationItem。

9. 控制動(dòng)畫,Lottie 提供了一整套簡(jiǎn)潔易用 API,如停止 stop()、暫停 pause()、播放 play()、播放流轉(zhuǎn) togglePause()、方向 setDirection()、速度 setSpeed() 等。

1.3 Lottie優(yōu)點(diǎn)

通過上文的介紹,我們可以總結(jié)出 Lottie 的以下優(yōu)點(diǎn):

1. 只需使用 Lottie 解析 json 文件就能實(shí)現(xiàn)動(dòng)畫的加載,基本上實(shí)現(xiàn)了 0 代碼開發(fā)。

2. 應(yīng)用開發(fā)者可以通過修改 json 文件的參數(shù),將動(dòng)畫運(yùn)行到不同的應(yīng)用程序中,實(shí)現(xiàn)動(dòng)畫的一次設(shè)計(jì)多端使用。

3. 應(yīng)用開發(fā)者可從網(wǎng)絡(luò)直接下載 json 文件,實(shí)時(shí)更新動(dòng)畫資源。

4. Lottie 基于 canvas 畫布進(jìn)行基礎(chǔ)的 2D 渲染,讓動(dòng)畫流暢度更高。

5. Lottie 可以將 UX 設(shè)計(jì)師給出的復(fù)雜動(dòng)畫效果 100% 還原到應(yīng)用程序中 。

6. Lottie 提供了豐富的 API,讓開發(fā)者能輕松控制動(dòng)畫,大大提高了開發(fā)效率。

2. Lottie實(shí)戰(zhàn)

通過上文對(duì) Lottie 的介紹,相信很多小伙伴已經(jīng)感受到了 Lottie 組件的強(qiáng)大,下面我們將通過一個(gè)簡(jiǎn)單的動(dòng)畫示例來(lái)為大家展示 ArkUI 開發(fā)框架中 Lottie 組件的使用。

2.1 創(chuàng)建項(xiàng)目

如圖 3 所示,在 DevEco Studio 中新建 Lottis_Test 項(xiàng)目,項(xiàng)目類型選擇 Application,語(yǔ)言選擇 eTS,點(diǎn)擊 Finish 完成創(chuàng)建。

c42a2d2a-d83e-11ec-ba43-dac502259ad0.png

圖3 創(chuàng)建工程

2.2 添加依賴

成功創(chuàng)建項(xiàng)目后,接下來(lái)就是將 Lottie 組件下載至項(xiàng)目中。首先,我們需找到 npm 配置文件,并在 .npmrc 配置文件中添加 @ohos 的 scope 倉(cāng)庫(kù)地址:@ohos:registry=https://repo.harmonyos.com/npm/,如圖 4 的 scope 倉(cāng)庫(kù)地址:@ohos:registry=https://repo.harmonyos.com/npm/,如圖 4 的 scope 倉(cāng)庫(kù)地址:@ohos:registry=https://repo.harmonyos.com/npm/,如圖 4 所示:

c45d204a-d83e-11ec-ba43-dac502259ad0.png

圖4 指定npm倉(cāng)庫(kù)地址

配置好 npm 倉(cāng)庫(kù)地址后,如圖 5 所示,在 DevEco Studio 的底部導(dǎo)航欄,點(diǎn)擊“Terminal”(快捷鍵 Alt+F12), 鍵入命令:npm install @ohos/lottie-ohos-ets 并回車,此時(shí) Lottie 組件會(huì)自動(dòng)下載至項(xiàng)目中。下載完成后工程根目錄下會(huì)生成 node_modules/@ohos/lottie-ohos-etsnode_modules/@ohos/lottie-ohos-etsnode_modules/@ohos/lottie-ohos-ets 目錄。

c49aef6a-d83e-11ec-ba43-dac502259ad0.png

圖5 下載lottie

2.3 導(dǎo)出動(dòng)畫資源并保存

將 After Effects 導(dǎo)出的 json 動(dòng)畫資源文件保存到項(xiàng)目中,保存路徑如下:entry/src/main/ets/MainAbility/common/lottie/animation.json

c4e600a4-d83e-11ec-ba43-dac502259ad0.png

圖6 json保存路徑

2.4 編寫邏輯代碼

使用擴(kuò)展的 TS 語(yǔ)言在工程的 index.ets 文件中編寫業(yè)務(wù)邏輯代碼 ,為了兼顧資源的及時(shí)釋放,在組件 @Component 聲明內(nèi)的聲明周期 onDisappear() 或 onPageHide() 中調(diào)用 lottie.destory() 釋放資源。示例代碼如下所示:
import lottie from 'lottie-ohos-ets'

@Entry@Componentstruct Index {  private controller: RenderingContext = new RenderingContext();// 動(dòng)畫別名  private animateName: string = "animation";// 動(dòng)畫資源相對(duì)路徑  private animatePath: string = "common/lottie/animation.json";  private onPageHide(): void {    // 隨頁(yè)面隱藏銷毀動(dòng)畫    lottie.destroy();  }  build() {    Column() {      // 聲明Animator與Canvas組件      Animator('__lottie_ets')      Canvas(this.controller)        .width('30%')        .height('20%')        .backgroundColor('#ff0000')        .onAppear(() => {          // 隨Canvas布局自動(dòng)加載動(dòng)畫          let anim = lottie.loadAnimation({            container: this.controller,            renderer: 'canvas',            loop: true,            autoplay: true,            name: this.animateName,            path: this.animatePath          })        })      Button('togglePause')        .onClick(() => {          // 聲明button按鍵與設(shè)置點(diǎn)擊事件,通過點(diǎn)擊控制動(dòng)畫暫停與播放的切換          lottie.togglePause(this.animateName);        })    }    .width('100%')    .height('100%')  }}
以上就是 ArkUI 開發(fā)框架中 Lottie 組件的使用,希望廣大開發(fā)者能利用這個(gè)強(qiáng)大的開源組件開發(fā)出更多精美的應(yīng)用。

審核編輯 :李倩


聲明:本文內(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)投訴
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    404

    瀏覽量

    17722
  • lottie
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    19898

原文標(biāo)題:OpenHarmony支持Lottie組件,讓動(dòng)畫繪制更簡(jiǎn)單

文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    學(xué)習(xí)鴻蒙必須要知道的幾個(gè)名詞

    HarmonyOS提供了一套UI(UserInterface,用戶界面)開發(fā)框架,即方舟開發(fā)框架ArkUI
    的頭像 發(fā)表于 07-06 08:04 ?635次閱讀
    學(xué)習(xí)鴻蒙必須要知道的幾個(gè)名詞

    ArkUI-X開發(fā)指南:【SDK配置和構(gòu)建說明】

    ArkUI-X SDK是ArkUI-X開源項(xiàng)目的編譯產(chǎn)物,可將ArkUI-X SDK集成到現(xiàn)有Android和iOS應(yīng)用工程中,使開發(fā)者基于一套ArkTS主代碼,就可以構(gòu)建支持多平臺(tái)的
    的頭像 發(fā)表于 05-25 16:48 ?3184次閱讀
    <b class='flag-5'>ArkUI</b>-X<b class='flag-5'>開發(fā)</b>指南:【SDK配置和構(gòu)建說明】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI代碼工程及構(gòu)建介紹】

    ArkUI作為OpenHarmony的默認(rèn)開發(fā)框架,在本項(xiàng)目(ArkUI-X)中需要做到一套代碼同時(shí)支持多平臺(tái)構(gòu)建,所以會(huì)采取共倉(cāng)開發(fā)的方式
    的頭像 發(fā)表于 05-25 16:45 ?2543次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI</b>-X基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b>代碼工程及構(gòu)建介紹】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI跨平臺(tái)設(shè)計(jì)總體說明】

    本文檔描述ArkUI開發(fā)框架跨平臺(tái)運(yùn)行能力相關(guān)的總體技術(shù)方案。
    的頭像 發(fā)表于 05-24 15:41 ?1942次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI</b>-X基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b>跨平臺(tái)設(shè)計(jì)總體說明】

    鴻蒙ArkUI-X跨平臺(tái)技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI跨平臺(tái)應(yīng)用開發(fā)的初學(xué)者。通過開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉ArkUI跨平臺(tái)應(yīng)用開發(fā)基本流程。
    的頭像 發(fā)表于 05-24 10:40 ?772次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X跨平臺(tái)技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X框架開發(fā):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開發(fā)的初學(xué)者。通過環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解跨平臺(tái)項(xiàng)目開發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?657次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X<b class='flag-5'>框架開發(fā)</b>:【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X跨平臺(tái)開發(fā):【bility開發(fā)說明(Android平臺(tái))】

    本文介紹將ArkUI框架擴(kuò)展到Android平臺(tái)所需要的必要的類及其使用說明,開發(fā)者基于OpenHarmony,可復(fù)用大部分的應(yīng)用代碼(生命周期等)并可以部署到Android平臺(tái),降低跨平臺(tái)應(yīng)用
    的頭像 發(fā)表于 05-21 10:54 ?1237次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X跨平臺(tái)<b class='flag-5'>開發(fā)</b>:【bility<b class='flag-5'>開發(fā)</b>說明(Android平臺(tái))】

    鴻蒙ArkUI-X跨平臺(tái)開發(fā):【SDK目錄結(jié)構(gòu)介紹】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如Android和iOS平臺(tái),讓開發(fā)者基于
    的頭像 發(fā)表于 05-20 16:28 ?1068次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X跨平臺(tái)<b class='flag-5'>開發(fā)</b>:【SDK目錄結(jié)構(gòu)介紹】

    鴻蒙ArkUI-X跨平臺(tái)開發(fā):【 應(yīng)用工程結(jié)構(gòu)說明】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如Android和iOS平臺(tái),讓開發(fā)者基于
    的頭像 發(fā)表于 05-19 21:05 ?793次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X跨平臺(tái)<b class='flag-5'>開發(fā)</b>:【 應(yīng)用工程結(jié)構(gòu)說明】

    鴻蒙ArkUI-X跨平臺(tái)技術(shù):【概述】

    ArkUI是一套構(gòu)建分布式應(yīng)用的聲明式UI開發(fā)框架。它具備簡(jiǎn)潔自然的UI信息語(yǔ)法、豐富的UI組件、多維的狀態(tài)管理,以及實(shí)時(shí)界面預(yù)覽等相關(guān)能力,幫助您提升應(yīng)用
    的頭像 發(fā)表于 05-16 16:19 ?2673次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X跨平臺(tái)技術(shù):【概述】

    HarmonyOS開發(fā)案例:【購(gòu)物車app】

    OpenHarmony ArkUI框架提供了豐富的動(dòng)畫組件和接口,開發(fā)者可以根據(jù)實(shí)際場(chǎng)景和開發(fā)需求,選用豐富的
    的頭像 發(fā)表于 05-14 18:19 ?1273次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【購(gòu)物車app】

    鴻蒙跨平臺(tái)框架:【ArkUi-X】創(chuàng)建工程

    鴻蒙推出了鴻ArkUi-X 框架所以就寫個(gè)文章分享一下
    的頭像 發(fā)表于 05-13 17:48 ?1326次閱讀
    鴻蒙跨平臺(tái)<b class='flag-5'>框架</b>:【<b class='flag-5'>ArkUi</b>-X】創(chuàng)建工程

    鴻蒙ArkUI:【從代碼到UI顯示的整體渲染流程】

    方舟開發(fā)框架(簡(jiǎn)稱ArkUI)是鴻蒙開發(fā)的UI框架,提供如下兩種開發(fā)范式,我們 **只學(xué)聲明式
    的頭像 發(fā)表于 05-13 16:06 ?1336次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>:【從代碼到UI顯示的整體渲染流程】

    鴻蒙開發(fā)學(xué)習(xí):初探【ArkUI-X】

    **簡(jiǎn)單來(lái)說,ArkTS + ArkUI-X 對(duì)標(biāo)的框架為 flutter,一次代碼,編譯為 native 全平臺(tái)運(yùn)行**
    的頭像 發(fā)表于 05-13 15:58 ?1433次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>學(xué)習(xí):初探【<b class='flag-5'>ArkUI</b>-X】

    OpenHarmony實(shí)戰(zhàn)開發(fā)-如何實(shí)現(xiàn)組件動(dòng)畫

    ArkUI為組件提供了通用的屬性動(dòng)畫和轉(zhuǎn)場(chǎng)動(dòng)畫能力的同時(shí),還為一些組件提供了默認(rèn)的動(dòng)畫效果。例如,List的滑動(dòng)動(dòng)效,Button的點(diǎn)擊動(dòng)效
    的頭像 發(fā)表于 04-28 15:49 ?799次閱讀
    OpenHarmony實(shí)戰(zhàn)<b class='flag-5'>開發(fā)</b>-如何實(shí)現(xiàn)組件<b class='flag-5'>動(dòng)畫</b>。
    主站蜘蛛池模板: 曰本毛片 | 在线免费看片 | 婷婷综合亚洲 | 中文字幕视频一区 | 91视频色 | 特级毛片视频在线 | 一色屋成人免费精品网站 | 在线视频永久在线视频 | 黄色网络在线观看 | 中文字幕亚洲一区 | 精品国产_亚洲人成在线高清 | 免费啪视频观在线视频在线 | 国产资源网站 | 黑人黄色片 | 免费的毛片网站 | 在线天堂资源 | 国产久爱青草视频在线观看 | 3344免费播放观看视频 | 一区二区三区四区精品 | 特级毛片aaaaaa蜜桃 | 伊人网综合视频 | 色婷婷亚洲综合五月 | 四虎影院永久地址 | 国产亚洲精品在天天在线麻豆 | 西西人体44renti大胆亚洲 | 在线欧美成人 | 黄色在线播放视频 | 色老板在线视频一区二区 | 天天摸天天操天天射 | 免费黄色在线观看 | 2023天天操 | 嫩草影院永久入口在线观看 | 高h细节肉爽文bl文 高h细节肉爽文男男 | 亚洲香蕉网久久综合影院3p | 色倩网站| 午夜精品一区二区三区在线观看 | 亚洲大成色www永久网 | 女人爽到喷水的视频大全在线观看 | 国产乱理论片在线观看理论 | 激情综合在线观看 | 特级中国aaa毛片 |