Android 启动页面制作(Splash Screen)

本文介绍如何在Android应用中实现启动页(SplashScreen),包括使用ImageView展示启动图片、设置全屏显示及延迟跳转到主界面的技术细节。
制作启动页面的思路是这样:启动一个activity作为Splash Screen,延迟一定时间后再跳转到主要activity。

下面是Splash Screen的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:contentDescription="@string/app_name"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" 
        android:scaleType="fitXY"
        />

</RelativeLayout>
整个布局只有一个ImageView。
注意写 ImageView 标签后会报一个警告:[Accessibility] Missing contentDescription attribute on image
解决方法就是加上这个属性:
android:contentDescription="@string/app_name"

第14行属性【android:scaleType = "fitXY"】的作用是把图片不按比例扩大/缩小到父View的大小显示。


下面是.java文件:

public class MainActivity extends Activity {

	private int SPLASH_DISPLAY_LENGTH = 3000; // 延迟三秒
	private ImageView splashImg = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);  
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);
		setContentView(R.layout.activity_main);
		
		splashImg = (ImageView)findViewById(R.id.imageView1);
		splashImg.setImageResource(R.drawable.splash);

		new Handler().postDelayed(new Runnable() {

			@Override
			public void run() {
				Intent mainIntent = new Intent(MainActivity.this,
						Lost_Found_Activity.class);
				MainActivity.this.startActivity(mainIntent);
				MainActivity.this.finish();
			}
		}, SPLASH_DISPLAY_LENGTH);
	}
}

说明: 

第9~11行代码:

        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);

它的作用是隐去app的标题并且全屏显示当前的activity(就是说屏幕上方的通知栏也会被遮盖掉)。


第15行代码【splashImg.setImageResource(R.drawable.splash);】指定启动页图片,splash是图片的名字,将它放到工程中res里面的drawable文件夹中,Eclipse会把资源文件添加到工程里面。


然后是Splash Screen的主体:【Handler().postDelayed(...)...】 的作用是延迟 SPLASH_DISPLAY_LENGTH (单位是毫秒),然后执行 run() 里面内容。在这里是跳转至Lost_Found_Activity,并且关闭当前的activity。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值