洛蒂 (Lottie)

Fly冰冰小鱼儿
Github地址:https://github.com/FlyBingBingXiaoYuEr123
码云:https://gitee.com/flyBingBingXiaoYuEr
简书地址:https://www.jianshu.com/u/6a8258941803
博客地址:https://blog.csdn.net/BinBinXiaoYuEr

Lottie相关介绍资料:
  • Lottie 是 Airbnb 开源的一个动画渲染库,同时支持 Android、iOS、React Native 平台。
  • Lottie 支持渲染播放 AE 动画。通过 AE 插件 bodymovie 导出 json 文件作为动画数据。
  • Lottie支持ios8以上系统,Lottie动画可以加载Bundled JSON文件或URL。目前,Lottie支持路径修剪,蒙版、遮盖等操作。
使用方法:
  • 集成环境: 移动端同学集成Lottie框架, UI/UE同学集成AE的bodymovin插件
  • 制作动画, 导出文件, 拖进工程
  • 创建LOTAnimationView, 并播放

简单讲就是:

  • 使用AE
  • 使用Bodymovin 导出Json 数据, 程序可直接使用~~
  • 交付给开发使用
下载地址

Android : https://github.com/airbnb/lottie-android
iOS : https://github.com/airbnb/lottie-ios
React Native : https://github.com/airbnb/lottie-react-native

启动图例子

动画有小鱼的尾巴摇动, 眼睛眨, 鱼鳍煽动, 背后的小泡泡时隐时现, 随机运动, 这让程序员来一个个写, 效率必然很低. 使用Lottie则简单很多, 我们公司的高级UI写完这个简直不要太轻松. 让UI同学导出动画时将第一帧截取出来作为启动页静态图, 在第一个视图加载的地方设置动态动画.

几点值得注意的是:

  • 这里创建一个UIImageView作为背景, 是拆分了动画, 将不动的部分作为背景, 避免内存中加载的图片过多, 后面会细说这个问题.
  • LOTAnimationView这个类就是动画本身了, 也可以设置contentMode, 所以为了适配, 这个属性应该与启动页图片一致(建议启动页用Storyboard + UIImageView).
  • 在视图加载完成之后调用_launchAnimation的play方法, 完成之后渐变色隐藏并置空.
    很容易的, 一个精美的启动动画就完成了.
Lottie仍然存在的问题:

1.Bodymovin 插件待完善,仍然有部分 AE 效果无法成功导出;
2.Lottie 对 json 文件的支持待完善,目前有部分能成功导出成 json 文件的效果在移动端上无法很好的展现;
3.目前不支持文字,所有文字必须转成矢量图才能正常展现动画;
4.动画无法被编辑,即移动端无法更改远端下载到本地的动画;
5.文档需要跟进。。现在的 json 文件内容看的好蛋疼。。根本没法开开心心提PR;

Lottie是基于CALayer的动画, 所有的路径预先在AE中计算好, 转换为Json文件, 然后自动转换为Layer的动画, 所以性能理论上是非常不错的, 在实际使用中, 确实很不错, 但是有几点需要注意的:

  • 如果使用了素材, 那么素材图片的每个像素都会直接加载进内存, 并且是不能释放掉的(实测, 在框架中有个管理cache的类, 并没有启动到作用, 若大家找到方法请告诉我), 所以, 如果是一些小图片, 加载进去也还好, 但是如果是整页的启动动画, 如上面的启动页动画, 不拆分一下素材, 可能一个启动页所需要的内存就是50MB以上. 如果不使用素材, 而是在AE中直接绘制则没有这个问题.

  • 如果使用的PS中绘制的素材, 在AE中做动画, 可能在动画导出的素材中出现黑边, 我的解决办法是将素材拖入PS去掉黑边, 同名替换.

  • 拆分素材的办法是将一个动画中静态的部分直接切出来加载, 动的部分单独做动画

  • 如果一个项目中使用了多个Lottie的动画, 需要注意Json文件中的路径及素材名称不能重复, 否则会错乱

  • 不支持渐变色

  • 不支持AE中的mask属性

  • Lottie先天就支持播放式动画, 对于交互式动画有个animationProgress的属性(待核实)

更多了解资料:

https://www.uisdc.com/lottie-dynamic-design-guide
https://www.ubuuk.com/article/384.html
AE插件安装与使用详见上述链接地址。

OC版本:
https://blog.csdn.net/wtj900/article/details/70654652?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-19&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-19

Swift版本和OC版本的区别:
http://airbnb.io/lottie/#/ios-migration?id=migrating-from-lottie-253objc-gt-30-swift

洛蒂(Lottie)相关推荐

  1. lottie 动画_使用After Effects和Lottie制作网络动画而不会损失质量

    lottie 动画 A quick getting started guide 快速入门指南 I recently took on a project where the team wanted to ...

  2. lottie介绍及使用相关(转)

    转自:https://www.jianshu.com/p/5bd4e42a3115 Lottie.jpg Overview 因为应用的下个版本的很多交互是参考Airbnb来的,而Airbnb开源了一个 ...

  3. 动脑2017android_您肯定要在2017年初尝试的25个新Android库

    动脑2017android by Michal Bialas 由Michal Bialas 您肯定要在2017年初试用的25个Android库 (25 Android libraries you de ...

  4. 专业游戏录屏软件Camtasia 2023强悍来袭,Camtasia Studio 2023的新增功能!

    Camtasia Studio 2023是一款专门录制屏幕动作的工具,它能在任何颜色模式下轻松地记录 屏幕动作,包括影像.音效.鼠标移动轨迹.解说声音等等,另外,它还具有即时播放和编 辑压缩的功能,可 ...

  5. 警方办案滥用谷歌地理围栏,小伙三次骑车路过案发点被视作嫌犯

    明天和意外你永远不知道哪个会先来. 在如今信息化时代,警方可以通过一些行政命令来调查用户数据并分析锁定嫌疑犯,而如果这些权益运用不当,则会给合法公民的正常生活造成干扰和恐慌. 3 月 7 日,来自美国 ...

  6. vectorvn1610报价_【8.5873.5444.G323】价格_厂家 - 中国供应商

    8.5873.5444.G323 Briskheat    SRX086012001P-T4A 120V 1200W 248F ATOS    DPZO-TE-173-DL5/I    比例方向阀 E ...

  7. 塞尔达盾反机器人_微软商店惊现《塞尔达传说:旷野之息》!任天堂暗示《喷射战士3》?| Jump简报...

    首先还是祝各位Jumper圣诞快乐! 业界新闻 1. 各大厂商新年寄语,表明未来动向 Fami通收到了54家日厂的新年贺卡,其中表明了相当多的新游戏和企划,具体如下: Atlus :<真女神转生 ...

  8. 使用React,Redux和Router进行真正的集成测试

    by Marcelo Lotif 通过马塞洛·洛蒂夫(Marcelo Lotif) 使用React,Redux和Router进行真正的集成测试 (Real integration tests with ...

  9. 35 岁之前不应该错过的 30 本书

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. PS:在这个书目中,我不偏好的书会直接放到最后,所以不是按原文顺序来. 1.<目送> 作 ...

最新文章

  1. OpenStack虚机网卡的创建过程
  2. 【问题记录】eclipse启动web项目时,spring会初始化两次
  3. boost::type_erasure::binding相关的测试程序
  4. 协方差公式性质证明过程_论文推荐 | 刘志平:等价条件平差模型的方差-协方差分量最小二乘估计方法...
  5. leetcode434. 字符串中的单词数
  6. JS、javascript计算两个时间差
  7. 佳能g2810打印机扫描怎么用_佳能Canon PIXMA G2810 驱动
  8. php redis 是什么意思,redis协议是什么意思
  9. RNA提取和建库流程对mRNA-Seq的影响
  10. AD18导出BOM清单报错
  11. 黄河科技学院计算机等级考试成绩查询,全国计算机等级考试成绩查询汇总
  12. 耳机声音一边大一边小
  13. 青蛙过河程序及其解析
  14. plc里的二进制 用计算机,PLC中常用数制及如何转换
  15. 不玩手机-自律习惯养成记
  16. 尚硅谷JavaWeb教程
  17. 杉岩数据对象存储替换IBM FileNet,突破性能瓶颈
  18. 答题卡识别C++版本(一)
  19. SOA和微服务的各自特点是什么?
  20. 简单的dnf增幅模拟器

热门文章

  1. 一个程序员近20年工资单
  2. java远程_java实现电脑远程控制详解,附完整源代码
  3. 解读Seele元一子链协议 产业公链底层框架非常完美!
  4. OA系统十九:请假申请五:【请假申请】这个内嵌页面的前台文件;设置【点击左侧菜单栏的“请假申请”后】在首页的“功能区”显示【请假功能】这个内嵌页面;
  5. C++校招面试题合集
  6. 树莓派+PHP+Mairadb数据库读取DHT11
  7. gcc参数-Wl,–gc-sections,不链接未用函数,减小可执行文件大小
  8. 如何删除iPhone或iPad上的所有照片
  9. 快来,别人不知道的秘密,QQ空间视频下载教程
  10. PCI-E基础知识学习