Android 設置啟動界面


啟動界面的意義是為了讓后台處理耗時的復雜工作,當工作處理完成后,即可進入主界面。相比讓用戶等待布局加載完成,使用一張圖片作為啟動背景,會帶來更好的體驗。

首先,需要建立一個簡單的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/launch"
    android:orientation="vertical">

</LinearLayout>

這里我直接把整個布局的背景設為一張圖片,這樣它能夠自適應屏幕的大小。

然后,創建一個 LaunchActivity ,在 AndroidManifest 中注冊,讓它最先啟動:

public class LaunchActivity extends Activity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加載啟動圖片
        setContentView(R.layout.activity_launch);
        //后台處理耗時任務
        new Thread(new Runnable() {
            @Override
            public void run() {
                //耗時任務,比如加載網絡數據
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //跳轉至 MainActivity
                        Intent intent = new Intent(LaunchActivity.this, MainActivity.class);
                        startActivity(intent);
                        //結束當前的 Activity
                        LaunchActivity.this.finish();
                    }
                });
            }
        }).start();
    }
}

這樣,一旦當后台任務處理完畢之后,就會自動進入到軟件的主界面中了。

當然,還有一種定時啟動主界面,通常用於廣告投放。

public class LaunchActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加載啟動界面
        setContentView(R.layout.activity_launch);
        Integer time = 2000;    //設置等待時間,單位為毫秒
        Handler handler = new Handler();
        //當計時結束時,跳轉至主界面
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(LaunchActivity.this, MainActivity.class));
                LaunchActivity.this.finish();
            }
        }, time);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM