天天看点

Android ProgressBar使用简单例子

主要代码如下:

一:

/**默认进度条的使用*/
	@SuppressLint("HandlerLeak")
	public void defaultProgressBar(View view) {
		System.out.println(hasData+","+status);
		final TextView tv=(TextView) this.findViewById(R.id.textView1);
		final ProgressBar pb = (ProgressBar) this
				.findViewById(R.id.default_progressBar);
		final  Handler handler = new Handler(){
			@Override
			public void handleMessage(Message msg) {
				// TODO Auto-generated method stub
				if (msg.what==1) {
					pb.setProgress(status);
					tv.setText(status+"/100");
				}
			}
		};

		new Thread() {
			public void run() {
				while (status < 100)
				{
					// 获取耗时操作的完成百分比
					status = doWork();
					System.out.println(status);
					// 发送消息到Handler
					Message m = new Message();
					m.what = 1;
					// 发送消息
					handler.sendMessage(m);
				}
			};
		}.start();
		
		

	}
           

二:耗时的操作:

public int doWork() {
		// 为数组元素赋值
		data[hasData++] = (int) (Math.random() * 100);
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return hasData;
	}
           

三:布局文件的主要代码:

<LinearLayout  
        android:id="@+id/lin1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
		android:orientation="horizontal">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="defaultProgressBar"
        android:text="@string/default_progressbar" />
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/progressbar_show"/>
    
    
    </LinearLayout>
<!-- 定义默认的进度条 -->
    <ProgressBar
        android:id="@+id/default_progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="297dp"
        android:layout_height="wrap_content" />