Lottie 中文文档 下载 App

跨平台表现不一致——同一 JSON 在 iOS/Android/Web 上看起来不同

为什么会有差异

Lottie 的设计初衷就是"一份 JSON、到处渲染"——但各平台的渲染引擎是不同团队独立实现的:

三个引擎的目标一致,但实现细节不同(路径解析、颜色空间、插值算法等)——这是差异的根本原因。

常见差异类型

颜色值 / 渐变不同

原因:

  1. AE 用 Display P3 或其他广色域颜色空间导出,转换为 sRGB 后值有微小偏差。
  2. 不同平台的色彩管理(Color Management)配置不同。
  3. 某些颜色在低色域设备(比如旧 Android 设备)上被系统映射。

解决:

缓动曲线不同

AE 里你调的 Graph Editor 贝塞尔曲线,三个引擎解析和执行方式不完全一致:

解决:

图层叠放顺序异常

原因:通常发生在 Alpha Matte / Trim Paths / Merge Paths 组合使用时。

解决:

修剪路径(Trim Paths)时序不一致

Trim Paths 是跨平台差异最大的特性之一:

解决:

文字渲染完全不同

文字图层跨平台差异最大,建议直接Convert to Outlines(转轮廓):

差异定位工具

LottieFiles 预览器 是排查跨平台差异的最佳工具:

  1. 拖入你的 JSON 文件。
  2. 切换右侧的 Web (SVG) / Web (Canvas) / iOS / Android 四种渲染模式。
  3. 对比同一段动画在四种模式下的表现。
  4. 如果预览器里就有差异 → 回到 AE 调整动画。
  5. 如果预览器里一致但实际设备有差异 → 检查各平台的 SDK 版本是否是最新。

终极建议

设计阶段就有跨平台意识: