Lottie for Android

来源:互联网 发布:linux 模糊查找文件 编辑:程序博客网 时间:2024/06/02 11:37

Lottie for Android

Lottie GitHub项目下载

Lottie库

Lottie解析json动画

Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库。

json动画实现

参考链接:Lottie- 让Android动画实现更简单

  • 设计师使用Adobe 的 After Effects(简称 AE)工具制作动画。
  • 在AE中安装Bodymovin的插件。

Lottie 方便、适配

  • 使用 Gif,这种方式当然可行,但是使用 Gif 占用空间较大,而且需要为各种屏幕尺寸、分辨率做适配,因为 Android 没有提供原生 Gif 的 api 支持,所以这种方案还会遇到兼容性问题;
  • 使用帧动画,这种方式还不如 Gif,一般来说使用帧动画占用空间比 Gif 还要大的多,而且一样要做多屏幕分辨率的适配,不过一般不会遇到兼容性问题;
  • 使用视频,这种方式当然可以,但是一般来说宣传片才用的上视频,一般的动画远不需要用视频才能实现的,未免有些大材小用了,而且占用空间依然很大。
  • Android 5.x 之后提供了对 SVG 的支持,通过 VectorDrawable、AnimatedVectorDrawable 的结合可以实现一些稍微复杂的动画,但是兼容性是一个问题,当然这个可以通过一些第三方库来解决,不过整个实现流程非常麻烦,每次全新实现一个动画都得重头来过,最最关键的是,如果一个公司下的 App,iOS 也要实现一套一样的动画,资源的占用与开发成本就显得过大了。

简单使用Lottie

添加Lottie代码

AS添加依赖:

dependencies {    compile 'com.airbnb.android:lottie:2.0.0-beta3'}

也可直接将下载的Lottie压缩包lottie-android-master\lottie\src\main\java下文件夹添加到Demo中

layout文件中添加

hello-world.json 文件只需要放在 app/src/main/assets 目录下就 ok 了,可从Lottie压缩包lottie-android-master\LottieSample\src\main\assets目录下获取json文件

<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" />

代码中使用

LottieAnimationView animationView = (LottieAnimationView) findViewById(R.id.animation_view);animationView.setAnimation("hello-world.json");animationView.loop(true);
0 0