什么是Splash
Splash也就是运用程序启动之前先启动一个画面,上面简略的引见运用程序的厂商,厂商的LOGO,称号和版本等信息,多为一张图片,显示几秒钟后会主动消息,然后显示出运用程序的主体页面。在PC上,很常见各种平台的运用程序都会有,多半是一张图片显示在屏幕地方,如Microsoft Office系列,或许GIMP等。在各种游戏中Splash是最常见的,几乎一切的游戏末尾都会有一张全屏的图片,上面通常都显示厂商的LOGO,游戏的称号等。在手机平板等移动设施上,类似PC的Splash很少,最少对于Android和iOS来讲原生的运用程序都没有这种Splash,然而不知从何时起,这种Splash末尾在第三方运用中盛行起来,几乎一切的第三方运用程序都有启动Splash。这些Splash的特点是占满整个屏幕,上面LOGO,厂商的名字,运用的名字版本等,大约3到5秒后,Splash主动隐没,运用主页面显示进去。很多运用在Splash页面也显示加载过程。
下面谈谈在Android中如何完成Splash以及它的优缺陷:
利用Activity作为Splash
这能够也是最常用的模式,方法就是用一个Activity,给它设置一个背景,或许要显示的信息(厂商,LOGO,名字和版本),让它显示几秒种,然后finish()掉,并启动运用主体Activity。
复制代码 代码如下:
复制代码 代码如下:
public class SplashActivity extends Activity {
private Handler mMainHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(getApplication(), NotTomorrowActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
// overridePendingTransition must be called AFTER finish() or startActivity, or it won't work.
overridePendingTransition(R.anim.activity_in, R.anim.splash_out);
}
};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().setBackgroundDrawableResource(R.drawable.kg);
mMainHandler.sendEmptyMessageDelayed(0, 5000);
}
// much easier to handle key events
@Override
public void onBackPressed() {
}
}
复制代码 代码如下:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >