android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析

本文详细介绍了Lottie动画的工作原理,从基本使用到json文件解析,再到源码分析。Lottie将动画数据转换为Drawable,通过ValueAnimator驱动,实现了在Android上的高效动画播放。Lottie在没有mask和mattes的情况下,性能和内存管理优秀,但在列表中使用需注意内存抖动问题。
摘要由CSDN通过智能技术生成

从json文件到炫酷动画-Lottie实现思路和源码分析,Lottie是最近Airbnb开源的动画项目,支持Android、iOS、ReactNaitve三个平台,本文分析主要Lottie把json文件转为动画的思路和源码实现。

文章首先介绍Lottie的基本使用,然后分析把json文件映射到动画的实现思路,最后分析Lottie的源码实现,这里分析的是Lottie-Android。

基本用法

与使用相关的只有三个类文件: LottieAnimationView、LottieComposition、LottieDrawable ,所以Lottie使用起来特别简单(需要注意Lottie支持API16及以上)。

最简单的使用方式是在xml中增加LottieAnimationView:

1A3262303-0.png

"Logo/LogoSmall.json"是需要加载的动画数据路径,根目录是assets目录。

也可以通过代码设置动画数据json路径:

1A3262B3-1.png

然后在代码中控制动画播放或者添加监听事件:

1A32CY1-2.png

Lottie提供了LottieDrawable可以使用:

1A32B534-3.png

可以看到Lottie使用起来非常简单,我们之后就从以上用到的 LottieAnimationView、LottieComposition、LottieDrawable 入手来分析下Lottie动画的实现原理。

思路分析

我们先从底层思考下如何在屏幕上绘制动画,最简单的方式是把动画分为多张图片,然后通过周期替换屏幕上绘制的图片来形成动画,这种暴力的方式非常简单,但缺点明显,很耗内存࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值