现在的位置: 首页 > 综合 > 正文

Android项目实战(一):口袋中国Android安卓手机客户端1.0版之欢迎界面

2012年11月08日 ⁄ 综合 ⁄ 共 3450字 ⁄ 字号 评论关闭

前言:

目前Android平台的开发一片红火,对于有Java开发经验的程序员来说,转行到Android平台并不是什么难事;所以,本系列的文章以口袋中国Android版项目实战为例子进行相关知识点的讲解,以带领更多的人进入Android开发的怀抱:)

 准备工作:

1、要做Android安卓手机客户端当然首先是搭建Android开发环境。可以参考这个帖子:
Android开发环境搭建全程演示(jdk+eclip+android sdk)

2、要了解Android的一些基本概念,如Android开发的基本概念,应用程序的入口点,界面切换,事件响应等等,可以参看这个本书 Android应用开发详解

3、要想写自定义的Android个性化UI,提高用户体验,可以参看这个本书  从零开始android游戏编程pdf 

编写代码:

一般软件启动首先是一个欢迎界面,也就是软件术语当中的闪屏。如本客户端的截图:
未命名.jpg

以下是欢迎页面闪屏的xml布局:

<?xml version="1.0" encoding="UTF-8"?>

<AbsoluteLayout
android:background="@drawable/welcome"
android:id="@+id/widget39"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>

<ProgressBar android:layout_width="160px" 
style="?android:attr/progressBarStyleHorizontal" 
android:progress="100" 
android:id="@+id/loading" 
android:layout_height="wrap_content" 
android:layout_x="64dip" 
android:layout_y="264dip">    
</ProgressBar>

<TextView android:layout_width="wrap_content" 
android:id="@+id/tips" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:text="please wait" 
android:layout_x="120dip" 
android:layout_y="228dip">                                          
</TextView>

</AbsoluteLayout>

从上面的代码中可以看出:欢迎页面包含一个背景图、一个文本、一个进度条。

以下是利用上面的布局文件产生欢迎页面的代码:

package com.pocketcn.ui;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;

import com.pocketcn.ui.R;

public class splash extends Activity {

/**
*
*/
static int idx=0;
/**
*
*/
protected ProgressBar myProgressBar;
/**
*
*/
protected TextView tips;

protected Timer tr;


private Handler process=new WelcomeProc(this);

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.splash);
tips=(TextView)findViewById(R.id.tips);
myProgressBar=(ProgressBar)findViewById(R.id.loading);
//
tr=new Timer();
tr.schedule(new TimerTask(){
@Override
public void run() {
splash.idx++;
process.sendEmptyMessage(splash.idx);
}
}, 0,200);

}
}

在上面的代码中,myProgressBar是一个进度条控件,这个进度条控件需要根据当前数据处理的状况进行相应的界面更新,所以笔者这里使用一个Handler来进行通讯,以通知Activity进行相应控件的更新,代码如下:

package com.pocketcn.ui;

import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import com.pocketcn.ui.R;

class WelcomeProc extends Handler {

private static Activity res;

public WelcomeProc(Activity aThis) {
this.res = aThis;
}
@Override
public void handleMessage(Message msg) {
int prc = msg.what;
if(prc > 0){
((splash)res).tips.setText("Tips: "+res.getString(R.string.welcometips1));
}
if(prc > 30){
((splash)res).tips.setText("Tips: "+res.getString(R.string.welcometips2));
}
if(prc > 60){
((splash)res).tips.setText("Tips: "+res.getString(R.string.welcometips3));
}
if (prc > 100) {
/*启动主界面
Intent intent = new Intent();
intent.setClass(res, splash.class);
res.startActivity(intent);*/
if(((splash)res).tr!=null){
((splash)res).tr.cancel();
}
//改变布局
((splash)res).setContentView(R.layout.main);

return;
}
((splash)res).myProgressBar.setProgress(prc);
}
}

本系列文章源代码下载:

口袋中国Android安卓手机客户端1.0版开发全程记录之欢迎界面
http://www.pocketcn.com/forum-viewthread-tid-1490-fromuid-2.html

口袋中国Android客户端1.0版开发全程记录之二登录界面
http://www.pocketcn.com/forum-viewthread-tid-1585-fromuid-2.html

口袋中国Android客户端1.0版开发全程记录之三用户实体类
http://www.pocketcn.com/forum-viewthread-tid-1744-fromuid-2.html

口袋中国Android客户端1.0版开发全程记录之四登录功能
http://www.pocketcn.com/forum-viewthread-tid-1882-fromuid-2.html

口袋中国Android客户端1.0版开发全程记录之五论坛实体类
http://www.pocketcn.com/forum-viewthread-tid-1894-fromuid-2.html

口袋中国Android客户端1.0版开发全程记录之六注册页面
http://www.pocketcn.com/forum-viewthread-tid-1916-fromuid-2.html

 

抱歉!评论已关闭.