怎样实现类似于“BOSS直招”Splash界面(Android启动界面)的那种全屏效果呢?如图所示:
其实几行代码就搞定了,以下是我实现的步骤。首先,编写界面:
<?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的。如图所示:
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>
再次运行项目,可以看到已经达到我们想要的效果了: