Android App 欢迎界面的实现
Day 4:五步实现你的第一个Android App 让我们初步认识到了App开发的流程。可貌似软件商店里的App都有一个不错的欢迎界面。那么,下面让我们一起来实现一个点击或者延迟几秒后再进入主界面的欢迎界面吧。
###1. 开发前
- 准备一:界面设计素材,这大概是视觉创意达人的活。好吧,PASS!我在PATTERN LIBRARY找到了如下的图文件。
- 准备二:在res目录下新建一个名为“drawable”的文件夹,然后将图文件复制到该目录下。接着在src/Package Name下新建一个Activity,命名为“WelcomeActivity”。
- 准备三:最后,一如既往地设计界面,可参看Day 4:五步实现你的第一个Android App。activity_welcome.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_height="match_parent" >
<ImageView
android:id="@+id/welcomeImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/asteroids" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="124dp"
android:text="BIG Lottery"
android:textColor="#FFFFFF"
android:textSize="48sp"
android:textStyle="bold|italic" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="45dp"
android:layout_marginRight="21dp"
android:text="Hewes17/11/16"
android:textColor="#FFFFFF"
android:textSize="18sp"
android:textStyle="bold|italic中中中中中
/>
</RelativeLayout>
###2. 开发中
####① 调整启动程序
因为开始只有MainActivity为启动项目的类别,所以要出现欢迎界面就必须修改Activity的启动顺序——修改清单文件AndroidManifest.xml。将MainActivity中如下内容删掉:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
即免除了MainActivity的启动权。可我们终究是要调动主界面的啊,于是我们开始撰写Welcome.java。
(1) 点击跳转
关键步骤:添加监听器——OnClickListener。其代码如下所示:
package com.example.biglottery;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class Welcome extends Activity {
private ImageView welcome;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
welcome=(ImageView)findViewById(R.id.welcomeImage);
welcome.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
goMain();
}
});
}
private void goMain() {
//设定调动其他的Activity、Service
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent); //将控制权交给MainActi`
ity
finish(); //结束
}
}
(2) 延迟跳转
关键步骤:新建一个消息处理对象——new Handler(),负责发送与处理消息。其代码如下所示:
package com.example.biglottery;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class Welcome extends Activity {
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//接收到消息后跳转
goMain();
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
//延迟两秒发送消息
handler.sendEmptyMessageDelayed(0,2000);
}
private void goMain() {
//设定调动其他的Activity、Service
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent); //将控制权交给MainActivity
finish(); //结束
}
}
效果如下(PS:尺寸问题会在后面统一解决):
###开发后
【学习总结】
- 应用 Intent协助Android各个组件之间的通信——Intent实现界面之间的跳转;
- Handler机制的学习——利用android.os.Handler的消息的延迟发送以及处理。
【编辑推荐】

浙公网安备 33010602011771号