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); } }