怎样实现类似于“BOSS直招”Splash界面(Android启动界面)的那种全屏效果呢?如图所示:

Android实现Splash界面全屏效果_xml

其实几行代码就搞定了,以下是我实现的步骤。首先,编写界面:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rl_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#4CDCCA"
    tools:context=".activity.MainActivity">

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="90dp"
        android:gravity="center"
        android:text="BOSS直招"
        android:textColor="@android:color/white"
        android:textSize="50dp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/title"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:text="互联网直招神器"
        android:textColor="@android:color/white"
        android:textSize="18dp" />

    <TextView
        android:id="@+id/tv_version"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="20dp"
        android:gravity="center"
        android:text="版本号:1.0.0"
        android:textColor="@android:color/white" />

</RelativeLayout>

2. 在styles.xml文件中添加样式。我取名为FixSystemWindowTheme,还是让它继承自原来项目默认的AppTheme,只是我们添加了一个全屏的属性,如下代码:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="FixSystemWindowTheme" parent="AppTheme">
        <item name="android:windowFullscreen">true</item>
    </style>

</resources>

在AndroidManifest.xml文件里让我们的Activity使用FixSystemWindowTheme主题,如下代码:

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

         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

运行APP后我们可以看到界面效果,虽然APP界面全屏了,但是并没有达到我们想要的效果,因为继承自AppTheme主题,项目默认是显示TitleBar的。如图所示:

Android实现Splash界面全屏效果_全屏_02

3. 那我们再添加不显示TitleBar的属性:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="FixSystemWindowTheme" parent="AppTheme">
        <item name="android:windowFullscreen">true</item>
        <item name="windowNoTitle">true</item>
    </style>

</resources>

再次运行项目,可以看到已经达到我们想要的效果了:

Android实现Splash界面全屏效果_xml文件_03