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

API 31下如何设置仅单张图片作为Android启动屏?

API 31 Android 单图启动屏问题解决方法

主题配置修正

你的当前配置缺少关键属性,导致默认图标和背景仍会显示。修改后的完整主题样式如下:

<style name="Theme.SplashTheme" parent="Theme.SplashScreen">
    <!-- 设置整图作为启动屏背景 -->
    <item name="windowSplashScreenBackground">@drawable/splash_image</item>
    <!-- 移除默认应用图标 -->
    <item name="windowSplashScreenAnimatedIcon">@null</item>
    <!-- 取消图标背景色,避免透明区域出现默认底色 -->
    <item name="windowSplashScreenIconBackgroundColor">@android:color/transparent</item>
    <!-- 禁用启动动画,防止整图被动画逻辑干扰 -->
    <item name="windowSplashScreenAnimationDuration">0</item>
    <!-- 指定启动完成后的主应用主题 -->
    <item name="postSplashScreenTheme">@style/Theme.AppTheme</item>
    <!-- 兼容旧逻辑,确保整图全屏显示 -->
    <item name="android:windowBackground">@drawable/splash_image</item>
    <item name="android:windowFullscreen">true</item>
</style>

代码层补充

在启动Activity的onCreate方法中,必须先调用Splash Screen API的安装方法,确保主题配置生效:

Kotlin 实现

override fun onCreate(savedInstanceState: Bundle?) {
    // 必须在super.onCreate之前调用
    installSplashScreen()
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
}

Java 实现

@Override
protected void onCreate(Bundle savedInstanceState) {
    SplashScreen.installSplashScreen(this);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

额外注意事项

  • 确保splash_image已适配不同分辨率,放置在对应的drawable目录(如drawable-mdpi、drawable-hdpi等),避免拉伸变形。
  • 检查主应用主题Theme.AppTheme,不要设置windowBackground等属性与启动屏主题冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:20:59