Lottie一個可輕鬆實現各種動畫(SVG、Animations)的開源專案
阿新 • • 發佈:2019-02-11
先看一下官網給的圖片:
相信肯定不少小夥伴還在為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資源庫