Lottie- 让Android动画实现更简单
Lottie是什么?
Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库。这么看可能很难理解,接下来我将详细的讲解如何使用。
Lottie项目地址:https://github.com/airbnb/lottie-android
首先先无耻的把我自己写的demo程序和源码放上来。
- Demo体验apk下载地址: https://fir.im/5j4e
- Demo程序的github地址 : https://github.com/panacena/LottieTest/
Lottie如何使用?
一、Lottie能干什么?
在回答Lottie能干什么之前,我们先想下如下的动画如何实现?
![](http://upload-images.jianshu.io/upload_images/2825714-bf5ca464398b1755.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
我想大概有几种方式:
使用帧动画。这种方式固然可行,但是一个需要动画添加很多张图片,势必会导致apk体积变大,并且还要根据不同的尺寸进行适配。
- 用 Gif。但是使用 Gif 占用空间较大,而且需要为各种屏幕尺寸、分辨率做适配,并且Android本是不支持gif直接展示的。
- 用代码加图片辅助。如之前写的 仿照驾校一点通欢迎页,这种方式繁琐并且每更新一次都需要重新写很多代码。
- Android 5.x 之后提供了对 SVG 的支持,通过 VectorDrawable、AnimatedVectorDrawable 的结合可以实现一些稍微复杂的动画,但是问题和前2个类似。
那么有没有什么方式是即可以方便的实现动画效果,又可以不用考虑适配的问题,而且Android、ios还可以兼容呢?
Lottie就是支持Android, iOS, 和React Native,并且只需简单的代码就可以实现复杂动画效果的库
二、Lottie在Android端怎么用?
假设我们要做一个缓冲数据时的一个loading动画,不用Lottie之前你们公司的美工一般都会给一个gif动画效果和一些切好的一帧一帧的图片。现在不需要这么操作了,只要你们公司的美工做如下的操作:
下面是公司帅帅的美工的工作
- 让设计师使用Adobe 的 After Effects(简称 AE)工具(美工一般都会这个)制作这个动画。
AE的下载地址:链接: http://pan.baidu.com/s/1misKrzU 密码:f2t7 (安装破解什么的就自行百度吧) - 在AE中安装一个叫做Bodymovin的插件。
下载 bodymovin,解压缩后只需要\build\extension\bodymovin.zxp这个档案就可以1478641334-9003-svgani13.手动安装plugin,以windows系统而言,要先下载 **ExMan Command Line tool **并解压缩。
再来把下载的bodymovin压缩后的 bodymovin-master\build\extension 目录下的bodymovin.zxp 这个档案复制进去同一个资料夹。1478641336-7754-svgani3
4.去找cmd,并以系统管理员身分执行。
![](http://upload-images.jianshu.io/upload_images/2825714-d832631082636e12.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/286/format/webp)
5.打“cd C:/ExManCmd_win 所在的路径 “,进入ExManCmd的资料夹中
![](http://upload-images.jianshu.io/upload_images/2825714-58a6f07c4dd615e1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/676/format/webp)
6.接着打 ExManCmd.exe /install bodymovin.zxp 就完成了
![](http://upload-images.jianshu.io/upload_images/2825714-deaca5473619952c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/675/format/webp)
7.再来进入AE 后,可以在windows/extentions/bodymovin 找到插件,开启后按下Render 就完成了。 重点来了,这时会在你选的Destination Folder目录中生成一个json格式的文件,这个 json 文件描述了该动画的一些关键点的坐标以及运动轨迹。请帅帅的美工把这个文件发给你苦逼的程序员兄弟吧!
![](http://upload-images.jianshu.io/upload_images/2825714-27d8195af7dde6ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1342/format/webp)
下面就是苦逼Android程序员应该如何做咯
1.在build.gradle中添加
dependencies { compile 'com.airbnb.android:lottie:1.0.1'
}
2.layout文件中添加
<com.airbnb.lottie.LottieAnimationViewandroid: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" />
3.将帅帅的美工给你的json文件重命名为xml中lottie_fileName的值,如上就是hello-world.json。将hello-world.json放入 app/src/main/assets目录中。打包吧!!
然后你就会发现奇迹出现了,没有一张图片,没有一个gif,但是动画效果出来了!就是这么简单,就是这么暴力!
三、Lottie进阶,如何更加高效和方便的实用?
1.最简单的使用方式就是上方直接在xml中定义的方式。
2.使用代码的方式,支持从assets目录中直接读取json文件、json字符串的方式、stream流的方式等
![](http://upload-images.jianshu.io/upload_images/2825714-5575e563871db68b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/754/format/webp)
3.从网络获取json文件,直接显示动画。这种方式很炫,你就可以不用不更新apk就不动声色的定期更新你的动画了。
下方是我写的一个小demo,使用okhttp访问网络上一段json文件,然后显示动画。
client.newCall(request).enqueue(new Callback() {@Override public void onFailure(Call call, IOException e) {}@Override public void onResponse(Call call, Response response) throws IOException {if (!response.isSuccessful()) {}try {JSONObject json = new JSONObject(response.body().string());LottieComposition.fromJson(getResources(), json, new LottieComposition.OnCompositionLoadedListener() {@Overridepublic void onCompositionLoaded(LottieComposition composition) {setComposition(composition);}});} catch (JSONException e) {}}});
四、Lottie例子程序
为了更好的让你了解这个库,我写了一个简单的demo,请大家帮忙点star !
- Demo体验apk下载地址: http://fir.im/5j4e
- Demo程序的github地址 : https://github.com/panacena/LottieTest/
感激
感谢以下文章:
这个项目碉堡了
After Effect 转svg 动画– 神奇的bodymovin 插件
转自: https://www.jianshu.com/p/cae606f45c0b#
Lottie- 让Android动画实现更简单相关推荐
- Lottie: 让动画实现更简单
自开始工作后,我就养成了一个习惯,那就是每天闲来无事去 Github 中浏览一些比较热门的开源项目,就在最近我发现了一个比较niubility的开源动画库项目 ----Lottie. 正式开始之前先简 ...
- flutter 点击旋转动画_让动画实现更简单,Flutter 动画简易教程!
Flutter中的动画功能强大且易于使用.接下来通过一个具体的实例,您将学到关于 Flutter 动画的一切. 难度:中级 今天,我们无法想象移动应用程序里面没有任何动画,当您从一页跳转到另一页时,或 ...
- Tvori推出2.0版本,让VR动画制作更简单
升级后的Tvori已经变成了一个VR动画制作利器. VR动画制作工具Tvori去年一上线,便得到不少创作者的认可.最近,Tvori迎来了2.0版本,其操作界面.场景以及功能都发生了重大的改变,这一次将 ...
- Android动画框架(二)----属性动画
转载请注明出处:http://blog.csdn.net/fishle123/article/details/50705928 Android提供三种形式动画:视图动画,帧动画,属性动画.其中属性动画 ...
- Lottie for Android 开源动画
github地址 : https://github.com/airbnb/lottie-android Lottie for Android, iOS, and React Native Lottie ...
- android jason动画,Android 动画之Lottie动画使用
Android 动画之Lottie动画使用 一:简介 Lottie是Airbnb开源的一套跨平台的完整解决方案,设计师只需要使用After Effects(简称AE)设计动画之后,使用Lottic提供 ...
- adobe android 动画,Lottie - Android 动画详解
Lottie 是 Airbnb 开源的火热动画库,让程序员告别痛苦的动画.对于曾经写一个大动画两三千行代码的我来说,无疑是一个巨大的福利. 接下来我将逐步介绍Lottie的使用及源码,以及 Adobe ...
- Lottie Android 动画制作与使用
Lottie Android 动画制作与使用 还未了解Lottie的同志,请观看我上篇文章: Lottie Android 初探 一.效果图预览 二.Adobe After Effects安装 作为I ...
- android动画制作工具,一款非常好用的动画库Lottie
简介 Lottie是Android和iOS的移动图书馆,用于解析Adobe After Effects动画,并以Bodymovin作为json导出,并在手机和网络上本机呈现. 该项目在GitHub已经 ...
最新文章
- 如何高效读论文?剑桥CS教授亲授“三遍论”
- python自学网站推荐-杭州python自学网站
- python中fetchall函数_python中查询数据库时fetchone()函数和fetchall()函数的区别
- android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)
- SSM项目调用Dao层查询方法传入正确参数但查不到数据
- 代码有温度 科技需向善
- Android程序中回调的讲解和使用
- React移动端h5日历组件react-h5-calendar周日历 月日历 周视图 月视图自定义标记点
- Altium Designer PCB设计常用规则
- 初学者c语言编程软件_初学者的C编程语言
- 盘口功夫——研判股价启动前的四种征兆----
- C rgb565转rgb888
- 计算机科学与技术专业毕业答辨问题,计算机科学与技术毕业论文题目参考
- win10把用户中文名改为英文名
- 虚拟机恢复初始化设置
- 如何用ssh隧道绕过防火墙
- Flink Table Api SQL 初体验,Blink的使用
- Android界面开发
- Informatica保障江苏电信规范化ETL开发
- ug html文件是什么,ug未保存以下对象
热门文章
- 图片转PDF软件免费获取激活码
- c# datatable数据合并方法
- UDT的连接建立和释放
- 安装升级Exchange Server 2010 SP1补丁
- 5.5 listen() --- 如果有“人”,请叫我?
- HDU 1024 Max Sum Plus Plus 动态规划
- 将阿拉伯数字转换为中文大写数字 —— pyhton实现
- 美团和大众点评早期分别以交易和用户评价进军团购行业
- 查看、修改图片gps地理位置信息
- centos7installan安装postgresql9.6,解决重音不敏感”排序规则,以及扩展pgcrypto函数