You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中windowSplashScreenAnimationDuration参数的作用是什么?

windowSplashScreenAnimationDuration参数实际作用

该参数不控制启动屏总展示时长,也不控制自定义动画drawable的播放时长,唯一作用是定义Android系统内置的闪屏退出动画(启动屏向App首页过渡时,图标收缩、背景淡出的过渡动画)的最大时长,取值上限为1000ms,超过该值系统会自动截断为1000ms。

异常现象原因说明

  • 配置为1000ms仍出现展示时长更短的情况:启动屏总展示时长由两个条件的最晚触发时间决定:① App第一帧内容完成绘制的时间 ② setKeepOnScreenCondition设置的持屏条件返回false的时间。两个条件都满足后,系统才会开始播放退出动画,总展示时长 = 持屏等待时间 + 退出动画时长。如果App首帧加载完成的时间超过你设置的动画时长,系统会直接结束闪屏、跳过退出动画,此时总展示时长等于首帧加载耗时,会出现短于1000ms的情况。
  • 配置为100ms反而展示时长更长的情况:如果App首帧加载耗时较长(比如1000ms),总展示时长为1000ms + 100ms = 1100ms,比首帧耗时800ms、配置1000ms动画时长时跳过动画的800ms总时长更长,就会出现短参数反而总时长更长的现象。
  • XML格式drawable动画不受该参数影响:自定义animated drawable作为闪屏图标时,动画的播放逻辑完全由drawable内部的duration配置控制,和系统退出动画参数无关,windowSplashScreenAnimationDuration不会修改自定义drawable的任何时间配置。

正确使用方式

  • 控制闪屏总展示时长不要使用windowSplashScreenAnimationDuration,调用闪屏实例的setKeepOnScreenCondition方法自定义持屏逻辑即可,示例:
// 强制闪屏至少展示1500ms
val launchTime = System.currentTimeMillis()
splashScreen.setKeepOnScreenCondition {
    System.currentTimeMillis() - launchTime < 1500
}
  • 自定义动画drawable作为闪屏图标时,直接在XML的animation-list中配置每个item的duration即可,总动画时长建议和持屏时长匹配,避免动画未播放完成闪屏就退出。
  • windowSplashScreenAnimationDuration仅用于调整退出过渡动画的快慢,无特殊需求保持默认值即可。
  • 部分国内定制ROM对系统闪屏API做了修改,可能出现参数不生效的情况,这类场景需要单独适配对应厂商的闪屏规范。

内容的提问来源于stack exchange,提问作者Michael Bolboceanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:57:04