安卓进度条组件ProgressBar的使用

ProgressBar的常用方法如下;

No.
方法
类型
属性
描述
1
public ProgressBar(Context context)
构造
 
创建ProgressBar对象
2
public synchronized int getMax()
普通
 
取得进度条设置的最大值
3
public synchronized int getProgress()
普通
 
取得当前进度
4
public synchronized int getSecondaryProgress()
普通
 
取得第二进度条的当前进度
5
public final synchronized void incrementProgressBy(int diff)
普通
 
设置第一进度条的每次增长值
6
public final synchronized void incrementSecondaryProgressBy(int diff)
普通
 
设置第二进度条的每次增长值
7
public synchronized void setIndeterminate(boolean indeterminate)
普通
android:indeterminate
设置进度条的确定(不确定)状态
8
public synchronized void setMax(int max)
普通
android:max
设置进度增长的最大值
9
public synchronized void setProgress(int progress)
普通
android:progress
设置当前进度
10
public synchronized void setSecondaryProgress(int secondaryProgress)
普通
android:secondaryProgress
设置第二进度条的当前进度
11
public void setVisibility(int v)
普通
android:visibility
设置进度条的可见状态

进度条的显示风格一共有四种:
默认风格的进度条:android:progressBarStyle
水平长型进度条:android:progressBarStyleHorizontal
大圆形进度条:android:progressBarStyleLarge
小圆形进度条:android:progressBarStyleSmall
如果现在希望进度条采用水平的形式进行显示,则在布局管理器中配置如下所示:
style="?android:attr/progressBarStyleHorizontal

具体XMl配置文件如下所示
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ProgressBar//第一个进度条
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="34dp"
        android:max="100"
        android:progress="0" 
        android:secondaryProgress="70"
        android:visibility="invisible" />

    <ProgressBar//第二个进度条
        android:id="@+id/progressBar2"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/progressBar1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="52dp"
        android:max="100"
        android:progress="50"
        android:secondaryProgress="70" 
        android:visibility="invisible"/>

    <ProgressBar//第三个进度条
        android:id="@+id/progressBar3"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/progressBar2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="49dp" 
        android:visibility="invisible"/>

    <Button//定义按钮
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/progressBar2"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="74dp"
        android:text="Button" />

</RelativeLayout>


package com.example.Progressbar1;

import android.R.id;
import android.R.integer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends Activity {
	private ProgressBar mybar1, mybar2, mybar3;
	private Button mybut = null;
	private static final int STOP = 1;//设置标记
	private static final int START = 2;//设置标记

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_main);
		this.mybar1 = (ProgressBar) super.findViewById(R.id.progressBar1);
		this.mybar3 = (ProgressBar) super.findViewById(R.id.progressBar3);
		this.mybar2 = (ProgressBar) super.findViewById(R.id.progressBar2);
		this.mybut = (Button) super.findViewById(R.id.button1);
		this.mybut.setOnClickListener(new change());
	}

	private class change implements OnClickListener {//设置监听方法

		@Override
		public void onClick(View v) {
			MainActivity.this.mybar1.setSecondaryProgress(0);
			MainActivity.this.mybar2.setVisibility(View.VISIBLE);
			MainActivity.this.mybar1.setVisibility(View.VISIBLE);
			MainActivity.this.mybar3.setVisibility(View.VISIBLE);
			MainActivity.this.mybar1.setMax(120);
			MainActivity.this.mybar2.setMax(120);
			MainActivity.this.mybar2.setProgress(0);
			MainActivity.this.mybar1.setProgress(0);
			new Thread(new Runnable() {//匿名内部类实现线程操作

				@Override
				public void run() {
					int count = 0;
					for (int i = 0; i < 10; i++) {
						count = (i + 1) * 20;
						try {
							Thread.sleep(500);

							if (i == 6) {//如果线程的长度为6*20=120则线程停止

								Message msg = new Message();
								msg.what = MainActivity.STOP;
								MainActivity.this.handler.sendMessage(msg);

							} else {//传入线程的值设置进度值
								Message msg = new Message();
								msg.arg1 = count;
								msg.what = MainActivity.START;
								MainActivity.this.handler.sendMessage(msg);
							}
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}

				}
			}).start();
		}

	}

	private Handler handler = new Handler() {//实例化Handler类

		@Override
		public void handleMessage(Message msg) {//处理得到消息

			switch (msg.what) {//停止显示,设置progressBar不可见
			case STOP:
				mybar1.setVisibility(View.GONE);
				mybar2.setVisibility(View.GONE);
				mybar3.setVisibility(View.GONE);
				Thread.currentThread().interrupt();
				break;
			case START://设置现成的值
				if (!Thread.currentThread().isInterrupted()) {

					mybar1.setProgress(msg.arg1);
					mybar2.setProgress(msg.arg1);
					mybar3.setProgress(msg.arg1);
				}
				break;
			default:
				break;
			}

		}
	};

}

安卓进度条组件ProgressBar的使用


安卓进度条组件ProgressBar的使用,布布扣,bubuko.com

安卓进度条组件ProgressBar的使用

上一篇:Android - Compass(罗盘) 详解


下一篇:安卓异步处理的使用AsyncTask