返回博客

App 启动页动画怎么做:安卓和 iOS 的限制与建议

启动页是用户对 App 的第一印象。但两个平台的规则完全不同:Android 有官方启动动画 API,iOS 至今只允许静态启动图。这篇讲清楚各自能做什么、不能做什么,以及可用的替代方案。

Android 12+:官方支持图标动画

Android 12 起,SplashScreen API 是系统级启动画面:App 图标会出现在屏幕中央,你可以给这个图标配一段矢量动画。系统有硬性约束——图标动画窗口上限约 1000 毫秒,且退出动画交由系统接管,应用无法完全控制全程。

<!-- themes.xml:矢量动画图标 -->
<style name="Theme.App.Splash" parent="Theme.SplashScreen">
    <item name="windowSplashScreenAnimatedIcon">@drawable/ic_animated_logo</item>
    <item name="windowSplashScreenAnimationDuration">800</item>
    <item name="postSplashScreenTheme">@style/Theme.App</item>
</style>

建议:把最精彩的 1 秒留给系统启动画面,进入应用后用首帧过渡动画接着讲故事——两段加起来控制在 2 秒左右。

iOS:启动图是静态的

iOS 的 LaunchScreen 从设计上就是静态快照:系统在 App 冷启动时展示一张图(Storyboard),不做任何动画,播完立刻切换到应用。这是刻意的性能取舍——保证冷启动永远"秒开"观感。

想要动画,业界通行做法是在首屏补一段"进入动画":启动图保持 Logo 静置,进入首页后让 Logo 做一次弹性定格或位移收场。视觉上与启动动画无异,且完全符合平台规范。

Web / H5 / PWA:最自由的一端

网页没有系统限制,CSS 动画直接可用。H5 启动页、PWA 首屏都能用一段 SVG/CSS 动画做开场。记得尊重系统设置:用prefers-reduced-motion给开启减弱动态的用户降级。

/* Logo 弹性入场:播一次,停在完整 Logo 上 */
.ztb-logo {
  animation: ztb-pop 1.8s cubic-bezier(.2, 0, 0, 1) both;
  transform-origin: center;
}
@media (prefers-reduced-motion: reduce) {
  .ztb-logo { animation: none; }
}

时长与设计清单

  • 启动动画 1–3 秒,播一次,最后完整停在 Logo 上;我们的示例数据显示 11 个真实案例平均约 2 秒。
  • 超过 2 秒要给用户预期:进度感、品牌故事或直接可跳过。
  • 循环动画只用于加载态,3–6 秒一圈,首尾要无缝衔接。
  • 深色底更出彩:12 个真实案例里 8 个用深色底衬托彩色 Logo。
  • iOS 别硬做启动页动画——静态图 + 首屏进入动画是合规且观感一致的方案。

先给 Logo 做一段动画

AI 编排,导出 SVG 和 CSS,直接用于 H5 启动页与官网。

试试 Logo 动画生成器

常见问题

iOS 能做启动页动画吗?

不能。iOS 的 LaunchScreen 从设计上就是静态快照,系统冷启动时展示一张图,不做任何动画。通行做法是静态启动图 + 首屏进入动画,观感一致且完全合规。

Android 启动动画有什么限制?

Android 12+ 的 SplashScreen API 允许给启动图标配矢量动画,但动画窗口上限约 1000 毫秒,退出动画由系统接管,应用无法控制全程。

网页启动页动画怎么做?

网页没有系统限制,CSS/SVG 动画直接可用,适合 H5 启动页和 PWA 首屏。记得用 prefers-reduced-motion 给开启减弱动态的用户降级。

启动页iOSAndroid

更多文章