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 |
设置进度条的可见状态 |
<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的使用,布布扣,bubuko.com
原文:http://blog.csdn.net/u013616976/article/details/21379247