Lottie 使用

原文:https://mp.weixin.qq.com/s?__biz=MzIxNjc0ODExMA==&mid=2247485033&idx=1&sn=54dd477b4c4cd30d12fde48eba929546&chksm=97851f48a0f2965e342a2cdf55cbefceaa20a24b887e2b79ff940ca57a17b6cb9ae999643ace#rdandroid

设计师使用 After Effects 设计出完美的动画,而后经过 Bodymovin 插件进行简单的转换和导出成 JSON,最后工程师将 JSON 放入 App 项目中,就能够将动画 100% 还原到产品中。json

缺陷:网络

系统版本限制,Android(Api 14+) 和 iOS(>=8.0) 都有不一样的版本限制。app

有一些交互动画,不被支持,哪怕导出了也没法被正常执行。ide

Bodymovin 插件还有待完善,有些 After Effects 实现的效果,没法被正常导出。oop

开始使用:布局

compile 'com.airbnb.android:lottie:2.0.0-beta4'

 

最简单的使用方式是直接使用 LottieAnimationView ,LottieAnimationView 直接继承自 AppCompatImageView 。动画

只须要提早将动画的 JSON 文件,放在 app/src/main/assets 目录下,在 Layout 布局文件中,能够直接使用。spa

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

 

或者你也能够使用逻辑代码去控制 Lottie 动画的播放插件

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

它支持几个属性:

lottie_fileName : 播放动画的 json 文件。

lottie_loop:是否循环播放,默认为 false。

lottie_autoPlay:是否加载完成以后,自动播放,默认为 false。

获取网络上的动画:

try { JSONObject json = new JSONObject(Const.json); LottieComposition.Factory.fromJson(getResources(), json, new OnCompositionLoadedListener() { @Override public void onCompositionLoaded(LottieComposition composition) { lottie1.setProgress(0); lottie1.loop(true); lottie1.setComposition(composition); lottie1.playAnimation(); } }); } catch (JSONException e) { e.printStackTrace(); }
相关文章
相关标签/搜索