1. 程式人生 > >開源App動畫Lottie

開源App動畫Lottie

新年第一天上班,沒想到就立春了,俗話說,一年之計在於春,全新的 17 年開始啦,來,收拾下心情,投入到工作中,擼起袖子,就是幹!

就在前幾天,Airbnb 開源了一個專案叫做 Lottie,我個人覺得這個專案簡直碉堡了!

動畫相信大家都不陌生,在 App 開發過程中,適當的使用動畫可以提升使用者體驗,使我們的產品錦上添花,對於一些簡單的動畫,我們很容易就能實現,但是對於一些比較複雜的動畫,實現起來就比較麻煩了,比如下圖的一些動畫:

 
 
 
 

怎麼樣?這些可不是簡單的移動、縮放、旋轉就搞得定的,可能有些人思考了之後大概有以下實現思路:

  • 使用 Gif,這種方式當然可行,但是使用 Gif 佔用空間較大,而且需要為各種螢幕尺寸、解析度做適配,因為 

    Android 沒有提供原生 Gif 的 api 支援,所以這種方案還會遇到相容性問題;

  • 使用幀動畫,這種方式還不如使用 Gif,一般來說使用幀動畫佔用空間比 Gif 還要大的多,而且一樣要做多螢幕解析度的適配,不過不會遇到相容性問題;

  • 使用視訊,這種方式當然可以,但是一般來說宣傳片才用的上視訊,一般的動畫遠不需要用視訊才能實現的,未免有些大材小用了,而且佔用空間依然很大。

就沒有更好的實現方式了麼?

當然有,Android 5.x 之後提供了對 SVG 的支援,通過 VectorDrawable、AnimatedVectorDrawable 的結合可以實現一些稍微複雜的動畫,相容性是一個問題,不過整個實現流程非常麻煩,每次全新實現一個動畫都得重頭來過,最最關鍵的是,如果一個公司下的 App,

iOS 也要實現一套一樣的動畫,資源的佔用就顯得過大了。

而 Airbnb 開源的這個專案完美的解決以上難題,我們來看下整個流程是什麼樣的。

假設我們要做一個引導頁面的歡迎動畫,這個一般設計師會用 Adobe 旗下的 After Effects (簡稱 AE)來做個動畫出來,設計師用 AE 做個動畫比工程師用程式碼去實現一個動畫要快的多的多,調整起來也很方便,之後 AE 上有一款外掛叫做 Bodymovin,這個外掛也比較屌,可以直接根據 AE 上的動畫檔案匯出 json 檔案,這個 json 檔案描述了該動畫的一些關鍵點的座標以及運動軌跡,之後我們在專案中引用 Lottie 開源庫,在佈局檔案中簡單的加上這麼一句就完美的實現了。

<com.airbnb.lottie.LottieAnimationView
    android:id="@+id/animation_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:lottie_fileName="hello-world.json"
    app:lottie_loop="true"
    app:lottie_autoPlay="true" />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

或者程式碼中這樣使用:

LottieAnimationView animationView = findViewById(R.id.animation_view);
animationView.setAnimation("hello-world.json");
animationView.loop(true);
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

值得一提的是,我們的 hello-world.json 檔案只需要放在 app/src/main/assets 目錄下就 ok 了。

當然,還有更多的用法,比如給動畫新增事件,比如描述動畫的 json 檔案可以遠端更新下載到本地,這樣就可以不動聲色的定期更新你的動畫了。

有了這個庫,我們可以充分發揮我們的想象力,很簡單方便的就實現了一套很酷炫的動畫,最重要的是,這個庫是跨平臺的,支援 Android、iOS 以及 ReactNative,共用一套 json 動畫描述檔案。

其實 Facebook 前段時間開源了一個類似的庫叫做 Keyframes,也是跨平臺的,但是 Littie 比 Keyframes 支援的特性更多,而且據 Airbnb 官方部落格介紹,以後對讓這個庫支援更多的特性與功能,不得不說,真乃良心!

最後,這個庫的開源地址在這裡:

最最後,Airbnb 還提供了一個 sample apk,考慮到部分人在 Google Play 上下載 apk 有些困難,我也貼心的把 sample apk 下載下來了,公眾號 AndroidDeveloper 後臺回覆「lottie」關鍵字獲取。


相關推薦

開源App動畫Lottie

新年第一天上班,沒想到就立春了,俗話說,一年之計在於春,全新的 17 年開始啦,來,收拾下心情,投入到工作中,擼起袖子,就是幹! 就在前幾天,Airbnb 開源了一個專案叫做 Lottie,我個人覺得這個專案簡直碉堡了! 動畫相信大家都不陌生,在 App 開發過程中,適當的使用動畫可以提升使用者體驗,

AE 動畫直接變原生程式碼:Airbnb 釋出開源動畫庫 Lottie

Airbnb 釋出的 Lottie 是一個面向 iOS、Android 和 React Native 的開源動畫庫。 簡單來說,就是可以直接利用 AE 匯出的 JSON 動畫檔案,將其解析為原生程式碼,並跨平臺執行在裝置上。 根據身邊朋友的試用,通過 Canvas 繪製動畫非常非常流暢,並且在 A

ios App 動畫分享

and tab ios ebo *** fadein car ble check 一、動畫分享 1. ************* 轉場動畫 *************    ZFDragableModalTransition    GTAppMenuContro

iOS:仿寫探探App動畫

demo ron dem 布局實現 you image 轉場動畫 pan https 一、簡單介紹 探探動畫比較新穎,這也是它在眾多交友軟件中火熱的一個特色。實現這種動畫的方式可以有兩種方式實現: 1、使用轉場動畫實現 2、使用CollectionView自定義布局實現,

開源app後臺開源框架集合 java

專案地址:https://github.com/sofn/app-engine app-engine 是一個分散式的App服務端快速開發框架,包含了基本的許可權認證、日誌處理、介面防刷、系統監控等基本功能。 此框架圍繞分散式服務系統構建,能夠快速擴容,迎合微服務化,提供App服務端常用必備功能

[譯]百裡挑一:21個優質Swift開源App

Mybridge AI 根據程式碼質量和start排名從900多個開源專案中選出21個開源專案。 [Official] Firefox iOS app built in Swift (Github Stars: 5,906). [Official] Word

Android開發者必備:推薦一款助力開發的開源APP

今天,給大家推薦一款小而精的開源應用,該應用是同事推薦給我的,我使用後感覺不錯遂在這兒分享給大家。 我們都知道,當我們新接觸一個 Android 專案想要快速熟悉程式碼時,最好的方式就是執行起來,從看得見的入手,一點點去除錯、捋程式碼。而事實上,大多數公司沒有那麼多時間讓你花幾天時間慢慢看,基本

開源開源APP

BeautifulRefreshLayout-漂亮的美食下拉重新整理 https://github.com/android-cjj/BeautifulRefreshLayout/tree/BeautifulRefreshForFood Material Design-動畫風格

Android-動畫- Lottie 動畫庫使用介紹

Lottie 是 Airbnb 公司開源的動畫庫。官方文件是這麼介紹的Lottie for Android, iOS, React Native, and Web。Lottie is a mobi

Android2018年必須知道的史上最全框架、最全開源App(高階開發人員必看,面試必看)

宣告: 最近相當長一段時間沒有更博,原因在於公司內部專案孵化,週期緊張,沒有時間及精力更博,今天給大家帶來了整理的安卓開發比較全的各種開源框架,開源App。 圖片載入庫 Universal-Image-Loader,早期廣泛被用的一個可重複使用的儀器為非同步影象載入、快

20多個可以提高你安卓開發技能的開源app

編輯推薦:稀土掘金,這是一個針對技術開發者的一個應用,你可以在掘金上獲取最新最優質的技術乾貨,不僅僅是Android知識、前端、後端以至於產品和設計都有涉獵,想成為全棧工程師的朋友不要錯過! 學習的最佳方式就是閱讀,對程式設計師來說也是如此。如果你想成為一個更優

十個經典Android開源APP專案

Android開發又將帶來新一輪熱潮,很多開發者都投入到這個浪潮中去了,創造了許許多多相當優秀的應用。其中也有許許多多的開發者提供了應用開源專案,貢獻出他們的智慧和創造力。學習開原始碼是掌握技術的一個最佳方式。下面推薦幾個應用開源專案,這些專案不僅提供了優秀的創意,也可以

關於"乾貨集中營"的一個開源App

中秋佳節,玩了一天,擼了兩天程式碼,搞出這麼個東東,共享出來,小夥伴們如果有興趣,歡迎添磚加瓦。使用到的技術清單如下:1.greenDao2.Retrofit3.CardView4.RecyclerVi

BaseAnimation是基於開源APP,致力於收集各種動畫效果(最新版本1.3)

宣告:部分動畫來源於網路,本人只是想方便收集在一起,如果不妥請及時與我聯絡!謝謝 為了統一BaseAnimationApp簽名,一定要方便以後大家自動更新...防止簽名衝突,不能及時更新 BaseAnimation討論群號:149581646 注意

AE製作json檔案格式動畫以及lottie開源庫的使用

手機應用上有很多地方需要用到動畫的地方,比如啟動頁面歡迎介面等,有些動畫比如簡單的伸縮旋轉等我們可以用屬性動畫來製作,但是涉及到一些複雜的不規則的動畫我們要實現起來就很麻煩,但是利用lottie載入j

Lottie一個可輕鬆實現各種動畫(SVG、Animations)的開源專案

先看一下官網給的圖片: 相信肯定不少小夥伴還在為svg,Animations而頭疼嗎!Lottie這個開源專案的出現,真是久旱逢甘霖(個人感覺)。 有些人會認為這些即使不用這也可以實現啊!的確能實現,Android 5.x 之後提供了對 SVG

開源整理:Android App新手指引開源控件

暫時 博客 target 引導 技術 方式 關於 iam ice 開源整理:Android App新手指引開源控件 一個App第一次與用戶接觸或者發生大版本更新時,常常會用戶進行新手引導,而一個好的新手指引,往往能夠方便新用戶快速了解操作你的應用功能。新手指引的重要性,不

使用 Facebook開源動畫庫 POP 實現真實衰減動畫

tran rect mov rec efault gin calayer uibutton height 1. POP動畫基於底層刷新原理。是基於CADisplayLink,1秒鐘運行60秒,接近於遊戲開發引擎 @interface Vie

單頁面跳轉添加返回和跳轉動畫(仿app) 只對單頁面和跳轉有用,我用的是angualr,有不會的可以私信問我。

hist page func margin consola color -s tar pla p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #596972 } p.p2 { mar

開源系統ThinkSNS V4移動APP端 10月--11月更新播報

www 系統 img html 4.3 4.5 認證用戶 接口 4.6 社交系統ThinkSNS V4包含電腦web端、手機H5、Android APP端以及iOS APP端,從十月到目前十一月中旬,陸陸續續也更新了兩三次,由於更新的內容不多,所以沒有單獨發更新播報。同時,