本文来自rydiy的博客:http://blog.youkuaiyun.com/crasyman2008
看到很多的应用都有欢迎界面,今天就来学习下欢迎界面的实现,边学边写。
方法有两种,第一,启动时启动一个activity,几秒之后打开另一个activity。 第二,使用同一个activity,加载2次layout。
一、2个activity
1、先定义2个layout:
welcome.xml
<?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:orientation="vertical" >
<ImageView android:id="@+id/welcome_imgview"
android:src="@drawable/welcome_pic"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center"/>
</LinearLayout>
main.xml
<?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:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
2、主界面
MainActivity.java
package com.rydiy.welcome;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
修改manifest.xml,增加
<activity android:name="MainActivity"></activity>
3、欢迎界面
SplashActivity.java
package com.rydiy.cooldoodle;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler;
public class SplashActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // welcome image setContentView(R.layout.welcome); new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub startActivity(new Intent(getApplication(), ProjectActivity.class)); SplashActivity.this.finish(); } }, 3000); } }
这样就ok了, 启动展示欢迎界面3s后转主界面。
二、同一个activity中实现
1、创建2个layout,同上
2、修改SplashActivity.java
package com.rydiy.welcome; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; public class SplashActivity extends Activity { private Handler mHandle = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub if(msg.arg1 == 1) setContentView(R.layout.main); } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome); new Thread(){ public void run() { Message msg = Message.obtain(mHandle); msg.arg1 = 1; mHandle.sendMessageDelayed(msg, 3000); } }.start(); } }
搞定,睡觉。。。