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

本文详细介绍了如何在口袋中国Android客户端项目中实现欢迎界面,包括XML布局文件和代码实现,涉及背景图、文本和进度条的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

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

 准备工作:

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

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

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


编写代码:

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


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


  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <AbsoluteLayout  
  4. android:background="@drawable/welcome"  
  5. android:id="@+id/widget39"  
  6. android:layout_width="fill_parent"  
  7. android:layout_height="fill_parent"  
  8. xmlns:android="http://schemas.android.com/apk/res/android"  
  9. >  
  10.   
  11. <ProgressBar android:layout_width="160px"   
  12. style="?android:attr/progressBarStyleHorizontal"   
  13. android:progress="100"   
  14. android:id="@+id/loading"   
  15. android:layout_height="wrap_content"   
  16. android:layout_x="64dip"   
  17. android:layout_y="264dip">      
  18. </ProgressBar>  
  19.   
  20. <TextView android:layout_width="wrap_content"   
  21. android:id="@+id/tips"   
  22. android:layout_height="wrap_content"   
  23. android:gravity="center"   
  24. android:text="please wait"   
  25. android:layout_x="120dip"   
  26. android:layout_y="228dip">                                            
  27. </TextView>  
  28.   
  29. </AbsoluteLayout>  

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

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

  1. package com.pocketcn.ui;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.os.Handler;  
  6. import android.widget.ProgressBar;  
  7. import android.widget.TextView;  
  8. import java.util.Timer;  
  9. import java.util.TimerTask;  
  10.   
  11. import com.pocketcn.ui.R;  
  12.   
  13. public class splash extends Activity {  
  14.   
  15. /** 
  16. * 
  17. */  
  18. static int idx=0;  
  19. /** 
  20. * 
  21. */  
  22. protected ProgressBar myProgressBar;  
  23. /** 
  24. * 
  25. */  
  26. protected TextView tips;  
  27.   
  28. protected Timer tr;  
  29.   
  30.   
  31. private Handler process=new WelcomeProc(this);  
  32.   
  33. /** Called when the activity is first created. */  
  34. @Override  
  35. public void onCreate(Bundle icicle) {  
  36. super.onCreate(icicle);  
  37. setContentView(R.layout.splash);  
  38. tips=(TextView)findViewById(R.id.tips);  
  39. myProgressBar=(ProgressBar)findViewById(R.id.loading);  
  40. //  
  41. tr=new Timer();  
  42. tr.schedule(new TimerTask(){  
  43. @Override  
  44. public void run() {  
  45. splash.idx++;  
  46. process.sendEmptyMessage(splash.idx);  
  47. }  
  48. }, 0,200);  
  49.   
  50. }  
  51. }  

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

  1. package com.pocketcn.ui;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Handler;  
  5. import android.os.Message;  
  6. import com.pocketcn.ui.R;  
  7.   
  8. class WelcomeProc extends Handler {  
  9.   
  10. private static Activity res;  
  11.   
  12. public WelcomeProc(Activity aThis) {  
  13. this.res = aThis;  
  14. }  
  15. @Override  
  16. public void handleMessage(Message msg) {  
  17. int prc = msg.what;  
  18. if(prc > 0){  
  19. ((splash)res).tips.setText("Tips: "+res.getString(R.string.welcometips1));  
  20. }  
  21. if(prc > 30){  
  22. ((splash)res).tips.setText("Tips: "+res.getString(R.string.welcometips2));  
  23. }  
  24. if(prc > 60){  
  25. ((splash)res).tips.setText("Tips: "+res.getString(R.string.welcometips3));  
  26. }  
  27. if (prc > 100) {  
  28. /*启动主界面 
  29. Intent intent = new Intent(); 
  30. intent.setClass(res, splash.class); 
  31. res.startActivity(intent);*/  
  32. if(((splash)res).tr!=null){  
  33. ((splash)res).tr.cancel();  
  34. }  
  35. //改变布局  
  36. ((splash)res).setContentView(R.layout.main);  
  37.   
  38. return;  
  39. }  
  40. ((splash)res).myProgressBar.setProgress(prc);  
  41. }  
  42. }  


本系列文章源代码下载:

口袋中国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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值