Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> AndroidUI組件之ProgressBar

AndroidUI組件之ProgressBar

編輯:關於Android編程

package com.gc.progressbar;
/*
 * 1、ProgressBar組件也是一組重要的組件,ProgressBar本身代表了進度條組件,
 * 它還派生了兩個常用的組件:SeekBar和RatingBar。
 * 2、進度條的功能與用法:
 * 進度條通常用於向用戶顯示某個耗時操作完成的百分比,進度條可以動態地顯示進度
 * 因此避免長時間地執行某個耗時操作時,讓用戶感覺程序失去了響應。
 * Android支持如下幾種風格的進度條,通過style屬性可以為ProgressBar指定風格
 * @android:style/Widget.ProgressBar.Horizontal-----水平進度條
 * @android:style/Widget.ProgressBar.Inverse--------普通大小的環形進度條
 * @android:style/Widget.ProgressBar.Large----------大環形進度條
 * @android:style/Widget.ProgressBar.Large.Inverse---大環形進度條
 * @android:style/Widget.ProgressBar.Small-----------小環形進度條
 * @android:style/Widget.ProgressBar.Small.Inverse---小環形進度條
 * 3、ProgressBar常用的XML屬性:
 * android:max-------------------設置該進度條的最大值
 * android:progress--------------設置該進度條的已完成進度值
 * android:progressDrawable------設置該進度條的軌道對應的Drawable對象
 * android:indeterminate---------該屬性設為true,設置進度條不精確顯示進度
 * android:indeterminateDrawable-設置繪制不顯示進度的進度條的Drawable對象
 * android:indeterminateDuration-設置不精確顯示進度的持續時間
 * android:progressDrawable用於指定進度條的軌道的繪制形式,該屬性可指定為
 * 一個LayerDrawable對象(該對象可通過在XML文件中用元素進行配置 )的引用
 * 4、ProgressBar提供了下面兩個方法來操作進度
 * setProgress(int) ---設置進度的完成百分比
 * incrementProgressBy(int)---設置進度條的進度增加或減少。當參數為正數時進度增加
 * ,當參數為負數時進度減少。
 */
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.ProgressBar;
/**
 * 
 * @author Android將軍
 *
 */
public class MainActivity extends Activity {
	//該程序模擬填充長度為100的數組
	private int [] data=new int[100];
	private int hasData=0;
	//記錄ProgressBar的完成進度
	private int status=0;
	private ProgressBar bar,bar2;
	//創建一個負責更新的進度的Handler
	Handler mHandler=new Handler()
	{

		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			//表明消息是由該程序發送的
			if(msg.what==0x111)
			{
				bar.setProgress(status);
				bar2.setProgress(status);
			}
		}
		
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bar=(ProgressBar)findViewById(R.id.bar);
		bar2=(ProgressBar)findViewById(R.id.bar2);
		//啟動線程來執行任務
		new Thread()
		{
			
			public void run()
			{
				while(status<100)
				{
					//獲取耗時操作的完成百分比
					status=doWork();
					//發送消息
					mHandler.sendEmptyMessage(0x111);
				}
			}
		}.start();
	}

	//模擬一個耗時的操作
	public int doWork() {
		// 為數組元素賦值
		data[hasData++]=(int)(Math.random()*100);
		try
		{
			Thread.sleep(100);
		}catch(InterruptedException e)
		{
			e.printStackTrace();
		}
		return hasData;
	}


}
布局文件:




    
        
        
        
        
        
        
    
    
    
    
    
    


轉載請注明出處:http://blog.csdn.net/android_jiangjun/article/details/25555633



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved