App启动页的应用非常广泛,诸如微信、淘宝、滴滴出行等常见的应用都使用了该技术。关于启动页的设计,目前仍存在一些争议。本节从一个开发者的角度来介绍Android应用启动页的实现。其实所谓启动页,就是两个界面进行跳转:其中第一个页面设置一个定时器,计时时间到,进入第二个页面。
【效果要求】 应用程序启动后,在启动页停留3s,跳转到应用程序主页面。
实现步骤如下:
(1)新建项目StartPageDemo,选择Empty Activity,并将Activity Name输入“SplashScreen”,如图3-14所示,然后单击“Finish”按钮。
(2)在上述过程中,生成activity_splash_screen.xml布局文件。内容修改如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_depth="match_parent"
tools:context=".SplashScreenActivity">
<ImageView
android:layout_width="fill_parent"
android:layout_depth="fill_parent"
android:id="@+id/imageView"
android:src="@drawable/jimi1"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
图3-14 新建Activity类
其中,ImageView是用来存放图片的控件。上述代码描述了该控件的宽度、高度、ID、src图片源及对齐方式。其中,src属性表示的是当前控件加载了drawable文件夹下的jimi1图片。因此,需要在drawable文件夹下复制一张jimi1命名的图片(后缀无所谓)。
(3)准备启动后进入的主页:在该项目中新建Activity类,名字为默认的MainActivity即可,其对应的布局文件为activity_main.xml,默认里面没有控件。为了彰显个性,读者可以在其中自行设计界面效果。
(4)在onCreate方法中加入以下代码:
new Handler().postDelayed(new Runnable(){
@Override
public void run(){
Intent mainIntent=new Intent(SplashScreenActivity.this,MainActivity.class);
startActivity(mainIntent);
finish();
}
},3000);
在上述代码中,通过postDelayed方法调用一个新定义的Runnable对象,该调用在3000ms以后生效,因此相当于实现一个定时器效果。而新定义的Runnable对象则实现了页面的跳转,进入MainActivity中。
可以在该项目的基础上进行以下尝试:
(1)增加动画效果;
(2)去掉启动页面的标题效果,效果如图3-15所示。
图3-15 启动页效果改进