1. 程式人生 > >Lottie一個可輕鬆實現各種動畫(SVG、Animations)的開源專案

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

先看一下官網給的圖片:

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

相信肯定不少小夥伴還在為svg,Animations而頭疼嗎!Lottie這個開源專案的出現,真是久旱逢甘霖(個人感覺)。

有些人會認為這些即使不用這也可以實現啊!的確能實現,Android 5.x 之後提供了對 SVG 的支援,通過 VectorDrawable、AnimatedVectorDrawable 的結合可以實現一些稍微複雜的動畫,可是這樣你需要考慮很多:

  • 寫一堆程式碼來實現它
  • 流暢度也要考慮
  • 相容性
  • 要是公司要andorid和ios實現一套一模一樣的,那資源的佔用就顯得過大了。

如果用Lottie這些都不需要考慮了,Lottie是支援Android、ios、ReactNative的,使用的過程也是很簡單的。

總之Lottie這個專案,讓我耳目一新,真是感覺吊的一筆!下面看看怎麼簡單使用的:

先看效果圖:
這裡寫圖片描述

  • Lottie引用
compile 'com.airbnb.android:lottie:1.0.1'
  • sdk最低要求: minSdkVersion 16
  • xml配置
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="zlg.wolf.wolf_lottie.MainActivity">
<com.airbnb.lottie.LottieAnimationView android:id="@+id/animation_view"
android:layout_width="wrap_content" android:layout_height="wrap_content" app:lottie_fileName="LottieLogo2.json" app:lottie_loop="true" app:lottie_autoPlay="true" />
</RelativeLayout>

也可以在activity中這樣寫:

/** app:lottie_fileName="LottieLogo2.json"
 * app:lottie_loop="true"
    */
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LottieAnimationView animationView = (LottieAnimationView) findViewById(R.id.animation_view);
        animationView.setAnimation("LottieLogo2.json");
        animationView.loop(true);
    }
  • assets資原始檔
    這裡寫圖片描述
    這樣就完成了!
    本文主要是先講述這個專案的簡單使用,後續會繼續學習其它的功能!

  • Lottie資源庫