從UI設(shè)計(jì)到開(kāi)發(fā)拒垃,Lottie使用全流程

lottie

從UI設(shè)計(jì)到開(kāi)發(fā)雀彼,Lottie使用全流程

使用lottie

Lottie 是一個(gè) iOS纺阔、Android 和 React Native 庫(kù)瘸彤,可以實(shí)時(shí)渲染 After Effects 動(dòng)畫(huà),讓?xiě)?yīng)用程序可以像使用靜態(tài)圖像一樣輕松地使用動(dòng)畫(huà)笛钝≈士觯可以輕松地將高質(zhì)量動(dòng)畫(huà)添加到任何本機(jī)應(yīng)用程序。本文將簡(jiǎn)單的從UI開(kāi)始婆翔,簡(jiǎn)單的記錄如何使用Lottie框架拯杠,快速打造酷炫的動(dòng)畫(huà)項(xiàng)目。

UI

安裝Bodymovin插件

Bodymovin 是 After Effects 的插件啃奴,可以將動(dòng)畫(huà)導(dǎo)出為 json 數(shù)據(jù)格式供 Lottie 使用潭陪。

1. 安裝插件安裝器 aescripts + aeplugins zxp installer 密碼: 2jbb

安裝aescripts + aeplugins zxp installer

2. 下載插件 Bodymovin 插件,插件包在目錄https://github.com/airbnb/lottie-web/blob/master/build/extension/bodymovin.zxp

3. 打開(kāi)插件安裝器最蕾,選擇插件進(jìn)行安裝

打開(kāi)插件目錄
選擇插件

4. 選擇安裝

出錯(cuò)

錯(cuò)誤依溯,這里是因?yàn)槲疫€沒(méi)有安裝AE,所以先去安裝AE去瘟则。黎炉。。

安裝AE完成
安裝插件到AE
安裝成功
在插件列表顯示安裝成功的插件

這樣插件就安裝完成了醋拧,重啟AE打開(kāi)看看插件列表

正常顯示插件

<table> <tr> <td bgcolor=#FCE8E6><font color=#E35251 size =4 face ="黑體" >注意: 安裝插件完成后慷嗜,還有一項(xiàng)設(shè)置必須設(shè)置</font></td></tr></table>
編輯

編輯-首選項(xiàng)-常規(guī)-允許腳本寫(xiě)入文件和訪問(wèn)網(wǎng)絡(luò),這項(xiàng)必須勾選
勾選

至于原因丹壕,后面會(huì)說(shuō)明庆械。

使用Bodymovin轉(zhuǎn)換動(dòng)畫(huà)

1. 先將制作好的動(dòng)畫(huà)文件導(dǎo)入AE

我這里隨便找了一測(cè)試的動(dòng)畫(huà)


導(dǎo)入測(cè)試動(dòng)畫(huà)

2. 打開(kāi)插件

在下面的列表會(huì)顯示你已導(dǎo)入的動(dòng)畫(huà)


動(dòng)畫(huà)列表

這時(shí)可以先點(diǎn)擊設(shè)置按鈕,設(shè)置你需要的屬性菌赖,不過(guò)一般默認(rèn)就可以了

在這里插入圖片描述

3. 選擇輸出文件路徑

選擇文件保存到本地的路徑


點(diǎn)擊選擇設(shè)置路徑

路徑設(shè)置完成

4. 最后就可以點(diǎn)擊Render按鈕缭乘,輸出Json文件了

點(diǎn)擊Render開(kāi)始輸出

出錯(cuò)了!A鹩谩堕绩!

出錯(cuò)了2哂住!奴紧!
這里就是上面提到的特姐,由于第一次安裝好插件后沒(méi)有設(shè)置允許寫(xiě)入文件和訪問(wèn)網(wǎng)絡(luò),導(dǎo)致輸出失敗绰寞,回去設(shè)置一下就好了到逊。
輸出完成

這樣就輸出完成了
在你本地的目錄就出現(xiàn)剛才輸出的json文件
在這里插入圖片描述

動(dòng)畫(huà)文件的json代碼

5. 驗(yàn)證json文件

如果想檢驗(yàn)最后輸出的json動(dòng)畫(huà)文件是否正常,有以下兩種方法:

1. 在Bodymovin 插件中預(yù)覽

預(yù)覽

在預(yù)覽界面選擇本地文件


選擇本地文件

點(diǎn)開(kāi)始播放就可以預(yù)覽了


在這里插入圖片描述

2. 在 https://lottiefiles.com/preview 中預(yù)覽

上傳json文件

上傳完成就自動(dòng)播放預(yù)覽了

最后滤钱,UI就可以將json文件發(fā)給開(kāi)發(fā),剩下的工作就由開(kāi)發(fā)完成了

開(kāi)發(fā)

集成Lottie

在app的 build.gradle

    //lottie
    implementation 'com.airbnb.android:lottie:4.2.0'

在project 的 build.gradle

allprojects {
    repositories {
        ...
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    }
}

導(dǎo)入動(dòng)畫(huà)文件

導(dǎo)入動(dòng)畫(huà)文件有多重方式:

存放json文件在 <td bgcolor=#FCE8E6><font color=#E35251 size =3 face ="黑體" >src/main/res/raw</font></td> 中

存放json文件在 <td bgcolor=#FCE8E6><font color=#E35251 size =3 face ="黑體" >src/main/assets</font></td> 中

最常用的是這兩種脑题。

還有是將 zip文件放在 <td bgcolor=#FCE8E6><font color=#E35251 size =3 face ="黑體" >src/main/assets</font></td> 中等件缸,不過(guò)本次測(cè)試未使用該方法

簡(jiǎn)單使用

在activity 的layout.xml中設(shè)置好布局:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.airbnb.lottie.LottieAnimationView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        //控制動(dòng)畫(huà)是否自動(dòng)播放
        app:lottie_autoPlay="true"
        //設(shè)置動(dòng)畫(huà)是否循環(huán)
        app:lottie_loop="true"
        //設(shè)置動(dòng)畫(huà)文件資源 ,來(lái)自src/main/res/raw
        app:lottie_rawRes="@raw/data"
        //設(shè)置動(dòng)畫(huà)文件資源 叔遂,來(lái)自src/main/assets
        app:lottie_fileName="hello_world.json"
 />
</androidx.constraintlayout.widget.ConstraintLayout>

這樣他炊,就完成了簡(jiǎn)單的lottie動(dòng)畫(huà)顯示了

lottie動(dòng)畫(huà)

補(bǔ)充

ImageView scaleType

從源碼我們可以看到,LottieAnimationView其實(shí)本質(zhì)也是一個(gè)ImageView已艰,所以痊末,是可以和正常的ImageView設(shè)置scaleType 為 centerCrop, centerInside, 或者fitXY的

@SuppressWarnings({"WeakerAccess"}) public class LottieAnimationView extends AppCompatImageView {
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哩掺,隨后出現(xiàn)的幾起案子凿叠,更是在濱河造成了極大的恐慌,老刑警劉巖嚼吞,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盒件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舱禽,警方通過(guò)查閱死者的電腦和手機(jī)炒刁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)誊稚,“玉大人翔始,你說(shuō)我怎么就攤上這事±锊” “怎么了城瞎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)俏脊。 經(jīng)常有香客問(wèn)我全谤,道長(zhǎng),這世上最難降的妖魔是什么爷贫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任认然,我火速辦了婚禮补憾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卷员。我一直安慰自己盈匾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布毕骡。 她就那樣靜靜地躺著削饵,像睡著了一般萌焰。 火紅的嫁衣襯著肌膚如雪锣枝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天咒彤,我揣著相機(jī)與錄音叙凡,去河邊找鬼劈伴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛握爷,可吹牛的內(nèi)容都是我干的跛璧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼新啼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼追城!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起燥撞,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤座柱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后叨吮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辆布,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年茶鉴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锋玲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涵叮,死狀恐怖惭蹂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情割粮,我是刑警寧澤盾碗,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站舀瓢,受9級(jí)特大地震影響廷雅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一航缀、第九天 我趴在偏房一處隱蔽的房頂上張望商架。 院中可真熱鬧,春花似錦芥玉、人聲如沸蛇摸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赶袄。三九已至,卻和暖如春抠藕,著一層夾襖步出監(jiān)牢的瞬間饿肺,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工幢痘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唬格,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓颜说,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親汰聋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子门粪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容