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

如何让启动页(Splash Screen)图片延伸显示至导航栏?

嘿,刚好我之前做过类似的需求——让启动页图片直接延伸到顶部导航栏(状态栏)区域,和Swiggy的效果完全一致对吧?这其实不难,主要靠调整Activity的主题和布局来实现,我给你一步步拆解:

实现步骤

1. 配置启动页Activity的主题

首先要让Activity的布局能延伸到系统状态栏下方,同时把状态栏设为透明。在res/values/styles.xml里创建一个专门的启动页主题:

<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- 将状态栏设置为完全透明 -->
    <item name="android:statusBarColor">@android:color/transparent</item>
    <!-- 允许窗口绘制系统栏的背景(这里就是透明) -->
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <!-- 隐藏默认的ActionBar,避免干扰 -->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

接着在AndroidManifest.xml里给你的启动页Activity绑定这个主题:

<activity
    android:name=".SplashActivity"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

2. 调整启动页布局

布局里的ImageView要铺满整个屏幕,包括状态栏覆盖的区域。用ConstraintLayout或者RelativeLayout都可以,这里以ConstraintLayout为例:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop" <!-- 保证图片铺满且不变形 -->
        android:src="@drawable/your_splash_image" />

</androidx.constraintlayout.widget.ConstraintLayout>

这里的scaleType="centerCrop"很关键,它会让图片按比例缩放,刚好填满整个屏幕,不会出现拉伸变形的情况。

3. 优化状态栏文字显示(可选)

如果你的启动页图片是浅色背景,状态栏默认的白色文字会看不清,这时候可以把状态栏文字改成深色:

  • 方法一:在SplashTheme里添加(仅支持Android 6.0+):
<item name="android:windowLightStatusBar">true</item>
  • 方法二:在SplashActivity的onCreate方法里动态设置:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}

小提示

  • 设计启动页图片的时候,记得预留状态栏的空间,别把重要内容(比如logo)放在顶部会被状态栏覆盖的位置,提前规划好构图。
  • 如果你的App支持深色模式,记得在res/values-night/styles.xml里同步这些主题设置,避免切换模式时出现显示异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:18:01