Lottie动画概述,Android面试10大知识点总结宝典助你通关

注:如果使用2.8以上的版本,Android要升级至AndroidX

implementation ‘com.airbnb.android:lottie:3.1.0’

第二步 将Lottie的Json文件放到 assets文件下

在这里插入图片描述

第三步 在XML或者代码中使用

//xml:

<com.airbnb.lottie.LottieAnimationView

android:id=“@+id/lottie_view”

android:layout_width=“300dp”

android:layout_height=“300dp”

android:layout_centerInParent=“true”/>

//Activity

lottieView = findViewById(R.id.lottie_view);

lottieView.setAnimation(“genius-avatar.json”);

lottieView.loop(true);

lottieView.playAnimation();

效果如下:

在这里插入图片描述

解析原理


这里就不讲,因为通篇都是解析Json文件的。

但是我们可以看看 Lottie主要使用到的类和它们的作用:

在这里插入图片描述

首先,LottieDrawable会分出很多图层,然后用图层管理者 CompositionLayers去分别进行绘制。

绘制的时候根据时间,计算每个时间点的 关键帧。这个时候用到了我们在属性动画所学过的 KeyFrame 关键帧处理类

在这里插入图片描述

Lottie的优势


从它的概念,我们不难看出它有这一些优势,让我们在一些情况下选择它更明智:

  1. 性能上:

从我们去用它的代码上看,Android端的实现是基于Drawable,IOS端是基于Layer,最终都是对canvas的操作。所以 程序的操作就是 Lottie对Json进行解析,它使用的是Core Animation的Api进行渲染得到帧动画,比原生帧动画还原度高、性能更好。

所以整个流程下来,除开解析Json文件,并无太多的性能损耗。

经测试:在没有开启硬件加速的情况下,帧率、内存、CPU都比属性动画差,开启硬件加速后,性能就差不多

  1. 存储上:

因为是json的形式,所以相比于 动则几M的 GIF图,它完全可以取代。

  1. 灵活性:

在拿到Json后,我们甚至可以通过修改Json来修改动画的一些 颜色、路径等,一个动画在不同的界面能表现出不同的形式,所以它的更新是非常灵活的。

  1. API完整:

它也有自己的 播放、控制进度、暂停,还可以缓存、添加额外的原生UI等。

  1. 兼容:

Android: API16+

IOS : IOS8+ /MacOS 10.10+

WEB:调用Bodymovin提供的js库 — bodymovin.js。

  1. 对程序员很友好

把制作动画的任务转移到 UI兄弟上,以后写不出或者的动画,就可以喊一句:既然是你们ui设计的,那你们ui用Lottie来做啊。

程序这边做的只需导入+播放了。

Lottie的不足


  1. 据说AE那边 专门导出 Json格式的插件 Bodymovin 还是有些问题的。部分AE效果无法导出

  2. 部分json解析后效果在移动端上 表现并不是很好。这还是因为 lottie对Json的支持并不是特别完善。

适用场景


虽然是个动画,但也不是每个地方都能用,其实它就跟GIF一样,是在特殊的情况下使用

  1. 酷炫的 App展示页(SplashActivity)
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

尾声

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-f1lNEdOx-1712784816633)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值