Lottie简单使用

一、简介

Lottie 是Airbnb开源的一个面向 iOS、Android、React Native 的动画库,能分析 Adobe After Effects 导出的动画,并且能让原生 App 像使用静态素材一样使用这些动画,完美实现动画效果。

现在使用各平台的 native 代码实现一套复杂的动画是一件很困难并且耗时的事,我们需要为不同尺寸的屏幕加载不同的素材资源,还需要写大量难维护的代码,而Lottie可以做到同一个动画文件在不同平台上实现相同的效果,极大减少开发时间,实现不同的动画,只需要设置不同的动画文件即可,极大减少开发和维护成本。

Lottie 地址:https://github.com/airbnb/lottie-android

Lottie 官网:https://airbnb.design/lottie/

为什么使用Lottie

  1. 跨平台只有制作一套json动画文件便可以跨平台在 Android  ios ReactNeative上使用,lottie库负责解析json文件并播放动画

  2. 可以支持网络下载json文件,本地播放,实时更新动画资源。

  3. 运行时效率上仅仅用Canvas去draw而已,流畅度非常棒,所以哪怕在Listview里去大量显示,内存占用和绘图效率都远远高于帧动画。

  4. 实现效果可以按设计出的100%还原到产品中

  5. 开发周期大大减少

使用Lottie实现的效果

lottie

Android端使用方法

1. 在项目 的 build.gradle 文件添加依赖

dependencies {
   
   
  implementation 'com.airbnb.android:lottie:$lottieVersion'
}

2. 添加 Adobe After

### 如何在 HTML 中添加和配置 Lottie 动画 要在 HTML 项目中集成并使用 Lottie 动画,可以按照如下方法操作: #### 安装依赖库 首先,在 HTML 页面中引入 Lottie 的 JavaScript 库。可以通过 CDN 方式快速加载此库。 ```html <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.4/lottie.min.js"></script> ``` 这一步骤确保了可以在网页上利用 Lottie API 来控制动画[^1]。 #### 创建容器元素 接着,在页面内创建一个用于承载动画的 DOM 元素。通常是一个 `div` 或者其他合适的标签,并为其指定唯一的 ID 属性以便后续引用。 ```html <div id="lottie-animation-container"></div> ``` 上述代码片段定义了一个名为 `lottie-animation-container` 的 div 作为未来显示动画的地方[^2]。 #### 加载 JSON 数据文件 如果打算展示本地存储的动画,则需提前准备好对应的 JSON 配置文件,并将其路径告知给 Lottie 实例化对象;如果是远程 URL 提供的数据源,则直接传入完整的链接即可。 对于本地资源而言,假设已经有一个位于 `/path/to/local/lottie.json` 下面的 JSON 文件,那么应该像这样读取它: ```javascript fetch('/path/to/local/lottie.json') .then(response => response.json()) .then(data => { const container = document.getElementById('lottie-animation-container'); lottie.loadAnimation({ container: container, renderer: 'svg', loop: true, autoplay: true, animationData: data // 这里的data就是之前获取到的对象形式的JSON内容 }); }) .catch(error => console.error('Error loading the local Lottie file:', error)); ``` 这段脚本展示了如何异步请求本地 JSON 文件并通过 fetch API 解析成 JavaScript 对象传递给 Lottie 初始化函数。 而对于在线资源来说,只需要简单修改为提供有效的 HTTP(S) 地址字符串代替上面提到的方法调用部分就可以了。 #### 控制动画行为 一旦成功设置了动画实例之后就可以自由操控其属性比如速度(`setSpeed`)、循环模式(`loop`)以及自动播放选项(`autoplay`)等特性。还可以监听某些特定时刻发生的事件例如完成一次迭代后触发回调处理逻辑等等[^4]。 例如设置两倍速率回放当前动画序列: ```javascript const animationInstance = lottie.loadAnimation({...}); animationInstance.setSpeed(2); ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值