本文来自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();
}
}
搞定,睡觉。。。