1. 程式人生 > >重構一:歡迎頁

重構一:歡迎頁

本歡迎頁只有一張圖片,預設展示3秒,採用theme方式進行設定。

第一步: 建立一個型別為Empty Activity的WelcomeActivity,刪除act_welcome中多餘的控制元件,只保留根佈局。

act_welcome.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".general.welcome.WelcomeActivity">
</android.support.constraint.ConstraintLayout>

第二步: 在styles.xml中新增一個自定義style,設定視窗背景為歡迎頁圖片,並繼承AppTheme(一定要繼承AppTheme,否則執行會報錯——You need to use a Theme.AppCompat theme (or descendant) with this activity.

styles.xml
 <style name="Welcome" parent="AppTheme">
        <item name="android:windowBackground">@mipmap/welcome</item>
 </style>

第三步: 在AndroidMenifest.xml中為WelcomeActivity設定Theme,theme內容為@style/Welcome(注意只能為WelcomeActivity設定主題,若設定到Application下,那麼每個Activity都會有背景

AndroidMenifest.xml
<activity
     android:name=".general.welcome.WelcomeActivity"
     android:theme="@style/Welcome"
     android:windowSoftInputMode="adjustNothing">
     <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

第四步: 在WelcomeActivity中設定Handler,實現延時效果

WelcomeActivity.java
package com.example.reconfigmvp.general.welcome;

import android.content.Intent;
import android.os.Handler;
import android.os.Bundle;

import com.example.reconfigmvp.general.home.HomeActivity;

public class WelcomeActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        postDelayed();
    }

    /**
     * 使用Handler實現延時3秒進入主頁的效果
     */
    private void postDelayed() {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(WelcomeActivity.this, HomeActivity.class);
                startActivity(intent);
            }
        }, 3000);
    }
}

至此,一個簡單的歡迎頁就完成了,可以利用延時3秒的時間間隙進行一些判斷,比如是否已經登入等。