標籤:
啟動介面的意義是為了讓幕後處理耗時的複雜工作,當工作處理完成後,即可進入主介面。相比讓使用者等待布局載入完成,使用一張圖片作為啟動背景,會帶來更好的體驗。
首先,需要建立一個簡單的布局:
<?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); }}
Android 設定啟動介面