Lottie 中文文档 下载 App

Lottie 跨平台支持矩阵——每个平台怎么接入

官方支持的平台

平台仓库安装方式当前主要维护者
Androidairbnb/lottie-androidGradle implementation "com.airbnb.android:lottie:X.Y.Z"Airbnb 团队
iOS / macOS / tvOS / visionOSairbnb/lottie-iosSwift Package Manager / CocoaPods / CarthageAirbnb 团队
Webairbnb/lottie-webnpm / CDN / Bodymovin 插件内置下载Airbnb 团队
React Nativeairbnb/lottie-react-nativenpm install lottie-react-nativeAirbnb 团队 + 社区
Windowslottie/lottie-windows通过 UWP / WinUI 3社区维护

社区封装

这些不是官方仓库,但维护活跃、生产可用:

不同平台的 API 风格差异

Lottie 在各平台的 API 设计遵循平台原生习惯,所以同一个动画在不同平台上的代码写法会有差异:

Android —— 继承 ImageView 的 LottieAnimationView:

val animationView = findViewById<LottieAnimationView>(R.id.animation_view)
animationView.setAnimation("loading.json")
animationView.playAnimation()

iOS —— UIView 子类 LottieAnimationView:

let animationView = LottieAnimationView(name: "loading")
animationView.play()

Web —— 函数调用,返回一个 player 对象:

const animation = lottie.loadAnimation({
  container: document.getElementById('lottie'),
  path: 'loading.json',
  renderer: 'svg',
  loop: true,
  autoplay: true,
});

React Native —— 组件化写法:

import LottieView from 'lottie-react-native';

<LottieView source={require('./loading.json')} autoPlay loop />

同一个 JSON,到处渲染

关键是:上面所有不同写法,底层加载的是同一个 Bodymovin JSON 文件。设计师导出一次,5 个平台直接消费,不用改任何内容。这就是 Lottie 最核心的价值——"设计一次,到处渲染"。