很多程序在完全载入之前往往会先显示一个载入界面,提示用户等待,这样对提高用户体验有很大作用。本文就为大家提供一个Android程序载入界面的开发实例。

       此实例中程序载入界面的显示过程是,打开程序,出现载入界面,显示进度条并在后台进行初始化工作,效果如下图(5个小圆点会循环变色):

Android程序载入界面

        下面介绍该实例主要代码的编写过程。

        一、创建进行初始化工作的线程:

Java代码
  1. class InitialThread extends Thread{   
  2.        
  3. @Override  
  4.   
  5.      public void run()   
  6.   
  7.      {   
  8.        
  9.          try {   
  10.          Thread.sleep(time);//替换为初始化代码....   
  11.   
  12.          Message msg;   
  13.          msg = new Message();   
  14.          msg.what = TYPE_STOP;   
  15.   
  16.          myHandler.sendMessage(msg);   
  17.          } catch (InterruptedException e) {   
  18.          // TODO Auto-generated catch block   
  19.   
  20.          e.printStackTrace();   
  21.   
  22.          Message msg;      
  23.          msg = new Message();   
  24.          msg.what = TYPE_STOP;   
  25.   
  26.          myHandler.sendMessage(msg);   
  27.   
  28.          }   
  29.        
  30.      }   
  31. }  

        二、创建界面更新线程,用来控制小圆点的变色:

Java代码
  1. class IndexThread extends Thread   
  2. {   
  3.        
  4.    @Override  
  5.   
  6.    public void run() {   
  7.        
  8.        Message msg;   
  9.        
  10.        while(!isStop) {       
  11.   
  12.             for(int i= 0 ; i < count ; i++) {       
  13.                  msg = new Message();   
  14.                  msg.what = TYPE_SELECTED;   
  15.                  msg.arg1 = imgIDs;   
  16.   
  17.                  myHandler.sendMessage(msg);       
  18.                  msg = new Message();   
  19.        
  20.                  if(i==0) {   
  21.        
  22.                       msg.what = TYPE_NO_SELECTED;   
  23.                       msg.arg1 = imgIDs[count-1];   
  24.        
  25.                       myHandler.sendMessage(msg);   
  26.        
  27.                  } else {   
  28.        
  29.                       msg.what = TYPE_NO_SELECTED;   
  30.                       msg.arg1 = imgIDs[i-1];       
  31.                       myHandler.sendMessage(msg);   
  32.                  }   
  33.        
  34.                  SystemClock.sleep(500);   
  35.        
  36.              }       
  37.   
  38.        }       
  39.    }   
  40. }  

       可以看到,IndexThread每隔500ms执行一次for循环,每次循环累计发送5个message到Handler,每个message包含该ImageView的Resource Id和当前状态(是否被选择,也就是白色还是绿色),下面一起看看Handler:

Java代码
  1. public Handler myHandler = new Handler() {   
  2.   
  3. @Override  
  4.   
  5. public void handleMessage(Message msg) {   
  6.   
  7. switch(msg.what)   
  8.   
  9. {   
  10.   
  11. case TYPE_STOP:   
  12.   
  13. Intent intent = new Intent(LoadingScreen1Activity.this, MainActivity.class);   
  14.   
  15. startActivity(intent);   
  16.   
  17. isStop = true;   
  18.   
  19. finish();   
  20.   
  21. break;   
  22.   
  23. case TYPE_SELECTED:   
  24.   
  25. ((ImageView)findViewById(msg.arg1)).setBackgroundResource(R.drawable.progress_go_small);   
  26.   
  27. break;   
  28.   
  29. case TYPE_NO_SELECTED:   
  30.   
  31. ((ImageView)findViewById(msg.arg1)).setBackgroundResource(R.drawable.progress_bg_small);   
  32.   
  33. break;   
  34.   
  35. }   
  36. }   
  37. };  

        case TYPE_SELECTED:将对应圆点置成绿色背景
        case TYPE_NO_SELECTED:将对应圆点置成白色背景
        case TYPE_STOP:表示初始化完成,程序跳转到主界面

        到此,此程序载入界面的实例就基本完成了。大家可以根据自己的喜好修改下程序,实现想要的效果。

本文发布:Android开发网
本文地址:http://www.teaching4real.com/android/example/110.html
2012年7月12日
发布:鸡啄米 分类:Android开发实例 浏览: 注册送白菜网:3