Android初试--更新进度条(ProgressBar)2
上一篇文章中我们看到了环形进度条的,那么现在我们就来看看水平进度条的使用。那么在更新进度条的时候需要注意其中的两个重点方法:
方法1:ProgressBar.setMax(int maxvalue)---设置进度条的最大值。
方法2:ProgressBar.setProgress(int progressvalue)---设置进度条更新的当前值。
下面就通过代码来测试。
布局文件源代码:
<LinearLayout 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:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="水平进度条测试" />
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="测试水平进度条" />
</LinearLayout>
效果:
主Activity中的代码实现:
package com.example.progressbardemo2;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private Button myButton=null;
private ProgressBar myProgressBar=null;
//保存进度条的当前值
private int myValue=0;
//创建一个Handler对象用来更新进度条的值
private Handler myHandler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton=(Button)findViewById(R.id.button1);
myProgressBar=(ProgressBar)findViewById(R.id.progressBar1);
//设置进度条的最大值
myProgressBar.setMax(10000);
//按钮注册监听器
myButton.setOnClickListener(new MyClick());
}
//内部类充当监听器
public class MyClick implements OnClickListener{
@Override
public void onClick(View v) {
//新建一个线程
new Thread(new Runnable() {
@Override
public void run() {
//循环10000次,不停的更新myValue的值
while(myValue++<10000){
//将一个Runnable对象添加到消息队列中,
//并且当执行到该对象时执行run()方法
myHandler.post(new Runnable() {
@Override
public void run() {
//设置进度条的值为当前值
myProgressBar.setProgress(myValue);
}
});
}
}
}).start();
}
}
}
当我们点击按钮之后进度条就会主动更新,如图: