首页 > 代码库 > android之进度条组件ProgressBar

android之进度条组件ProgressBar

首先是main.xml文件

代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent" >	<ProgressBar 	    android:id="@+id/myprobarA"	    style="?android:attr/progressBarStyle"	    android:visibility="gone"	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"/>	<ProgressBar 	    android:id="@+id/myprobarB"	    style="?android:attr/progressBarStyleHorizontal"	    android:visibility="gone"	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"/>	<ProgressBar 	    android:id="@+id/myprobarC"	    style="?android:attr/progressBarStyleHorizontal"	    android:visibility="gone"	    android:max="120"	    android:progress="0"	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"/>	<ProgressBar 	    android:id="@+id/myprobarD"	    android:visibility="gone"	    android:max="120"	    android:progress="50"	    android:secondaryProgress="70"	    style="?android:attr/progressBarStyleLarge"	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"/>	<ProgressBar 	    android:id="@+id/myprobarE"	    android:visibility="gone"	    android:max="120"	    android:progress="50"	    android:secondaryProgress="70"	    style="?android:attr/progressBarStyleSmall"	    android:layout_width="fill_parent"	    android:layout_height="wrap_content"/>	<Button 	    android:id="@+id/mybut"	    android:text="显示进度条"	    android:layout_width="wrap_content"	    android:layout_height="wrap_content"/></LinearLayout> 

  然后编写Activity.java类

代码如下:

package com.example.myfirstproject;import java.sql.Date;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import java.util.Timer;import java.util.TimerTask;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.app.Activity;import android.content.pm.ActivityInfo;import android.content.res.Configuration;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.*;public class MainActivity extends Activity {	private ProgressBar myprobarA,myprobarB,myprobarC,myprobarD,myprobarE;	private Button mybut;	protected static final int STOP = 1;	protected static final int CONTINUE = 2;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        this.myprobarA = (ProgressBar)this.findViewById(R.id.myprobarA);        this.myprobarB = (ProgressBar)this.findViewById(R.id.myprobarB);        this.myprobarC = (ProgressBar)this.findViewById(R.id.myprobarC);        this.myprobarD = (ProgressBar)this.findViewById(R.id.myprobarD);        this.myprobarE = (ProgressBar)this.findViewById(R.id.myprobarE);        this.mybut = (Button)this.findViewById(R.id.mybut);        this.myprobarA.setIndeterminate(false);        this.myprobarB.setIndeterminate(false);        this.myprobarC.setIndeterminate(true);        this.myprobarD.setIndeterminate(false);        this.myprobarE.setIndeterminate(false);        this.mybut.setOnClickListener(new OnClickListenerlmpl());    }        private class OnClickListenerlmpl implements OnClickListener{    	public void onClick(View view){    		MainActivity.this.myprobarB.setSecondaryProgress(0);    		MainActivity.this.myprobarA.setVisibility(View.VISIBLE);    		MainActivity.this.myprobarB.setVisibility(View.VISIBLE);    		MainActivity.this.myprobarC.setVisibility(View.VISIBLE);    		MainActivity.this.myprobarD.setVisibility(View.VISIBLE);    		MainActivity.this.myprobarE.setVisibility(View.VISIBLE);    		MainActivity.this.myprobarA.setMax(120);    		MainActivity.this.myprobarB.setMax(120);    		MainActivity.this.myprobarA.setProgress(0);    		MainActivity.this.myprobarB.setProgress(0);    		new Thread(new Runnable(){    			public void run(){    				int count = 0;    				for(int i = 0;i < 10;i++){    					try{    						count = (i+1)*20;    						Thread.sleep(500);    						if(i==6){    							Message m = new Message();    							m.what = MainActivity.STOP;    							MainActivity.this.myMessageHandler.sendMessage(m);    							break;    						}else{    							Message m = new Message();    							m.arg1 = count;    							m.what = MainActivity.CONTINUE;    							MainActivity.this.myMessageHandler.sendMessage(m);    						}    					}catch(Exception ex){    						ex.printStackTrace();    					}    				}    			}    		}).start();    	}    }    private Handler myMessageHandler = new Handler(){    	public void handleMessage(Message msg){    		switch(msg.what){    		case MainActivity.STOP:    			myprobarA.setVisibility(View.GONE);    			myprobarB.setVisibility(View.GONE);    			myprobarC.setVisibility(View.GONE);    			myprobarD.setVisibility(View.GONE);    			myprobarE.setVisibility(View.GONE);    			Thread.currentThread().interrupt();    			break;    		case MainActivity.CONTINUE:    			if(!Thread.currentThread().isInterrupted()){    				myprobarA.setProgress(msg.arg1);    				myprobarB.setProgress(msg.arg1);    				myprobarC.setProgress(msg.arg1);    				myprobarD.setProgress(msg.arg1);    				myprobarE.setProgress(msg.arg1);    			}    			break;    		}    	}    };}

  运行效果:

android之进度条组件ProgressBar