转载请标明出处:http://blog.csdn.net/u012637501/article/details/45746617
每个Android应用启动之后都会出现一个Splash启动界面,大多数的Splash界面都是会等待一定时间,然后切换到下一个界面。但如果app启动时间过长,可使用启动界面让用户耐心等待这段枯燥的时间。Splash界面一般用于显示产品的LOGO、产品名称、版本信息等,也可以完成对系统状况的检测,如网络是否连通、电源是否充足、检测新版本等,也可以预先加载相关数据。启动界面SLEEP的时间=固定时间-预处理任务时间。
一、为APP创建一个简单的启动界面
所谓简单的启动界面,即界面只用于显示产品的LOGO、产品名称等常规信息,不做系统状态检测或数据加载的操作。设计方法如下:实现两activity,
一个是SplashActivity,用来做启动画面,另一个是将要跳转的Activity。通过创建一个新的线程,延迟指定的时间再执行Activity的跳转,并调用finish方法结束当前启动activity。
实例:高仿QQ启动界面
1.src/.../WelcomeActivity.java
- package com.example.qq2012;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Window;
- /*欢迎动画*/
- public class WelcomeActivity extends Activity {
- protected void onCreate(Bundle savedInstanceState) {
- // requestWindowFeature(Window.FEATURE_NO_TITLE); //设置显示窗口界面特征,此时为窗口无标题
- super.onCreate(savedInstanceState);
- setContentView(R.layout.welcome);
- final Intent intent = new Intent(WelcomeActivity.this,LoginActivity.class); //设置一个用于启动新Activity的"意图"
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //使系统为需要启动的Activity寻找与当前Activity不同的任务栈
- new Thread(new Runnable(){ //创建一个新的线程来显示欢迎动画,指定时间后结束,跳转至指定界面
- public void run() {
- try {
- Thread.sleep(3000); //欢迎界面启动持续时间
- getApplicationContext().startActivity(intent); //启动新的界面,获取应用的上下文,生命周期是整个应用,应用结束才会结束
- finish(); //结束欢迎界面activity
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).start();
- }
- }
2.res/layout/welcome.xml
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:theme="@android:style/Theme.NoTitleBar.Fullscreen"