activity的启动页(splash screen)

1,475 阅读1分钟

需求

对andriod进行启动页设置

修改文件

需要修改的文件一共有四个如下图

splash_screen.xml

在res的drawable文件夹下面建立一个资源layer-list,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorPrimaryDark"/>
    
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/splashbg"/>
    </item>
</layer-list>

这段代码是用来绘制显示的启动页的。

styles.xml

在res的values文件夹下面有一个styles.xml文件,在里面插入一个新的主题,代码如下

    <style name="AppTheme.SplashTheme" parent="Theme.AppCompat.NoActionBar" >
        <item name="android:background">@drawable/splash_screen</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="windowNoTitle">true</item>
    </style>
记得把刚刚绘制的splash_screen加入到这一行。
<item name="android:background">@drawable/splash_screen</item>

AndroidManifest.xml

你需要把所有的Activity在这里注册,而我们的SplashActivity应该这么写。

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

SplashActivity.java

最后一步,新建一个java类命名为SplashActivity。重写onCreate方法,如下:

@Override
    public void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
        finish();
    }

如此便完成了启动页的设置