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 别硬做启动页动画——静态图 + 首屏进入动画是合规且观感一致的方案。
常见问题
iOS 能做启动页动画吗?
不能。iOS 的 LaunchScreen 从设计上就是静态快照,系统冷启动时展示一张图,不做任何动画。通行做法是静态启动图 + 首屏进入动画,观感一致且完全合规。
Android 启动动画有什么限制?
Android 12+ 的 SplashScreen API 允许给启动图标配矢量动画,但动画窗口上限约 1000 毫秒,退出动画由系统接管,应用无法控制全程。
网页启动页动画怎么做?
网页没有系统限制,CSS/SVG 动画直接可用,适合 H5 启动页和 PWA 首屏。记得用 prefers-reduced-motion 给开启减弱动态的用户降级。
更多文章
App 图标尺寸大全:iOS、安卓和网站(2026 速查表)
2026 年真正需要的 App 图标尺寸:iOS 和 iPadOS、Apple Watch、安卓启动图标和自适应图标、Google Play、网站 favicon,一张表查完,再说说最常见的几个错误。
Android 自适应图标:图层、安全区和真实做法
自适应图标是怎么回事:108dp 画布、66dp 安全区、前景背景两层、主题图标单色层和 XML 写法,以及做安卓图标最容易犯的几个错。
苹果 Icon Composer 使用指南:怎么用,没有 Mac 怎么办
Icon Composer 是苹果做分层 Liquid Glass 图标的工具:去哪下载、素材怎么准备、哪些设置要调、怎么把 .icon 文件放进 Xcode,以及没有 Mac 时的替代做法。