满城风絮 2013-07-30
一个关于ProgressBar的简单程序,做项目的时候很多时候都没有考虑到用progressbar,但实际上这样的用户体验不好,拿着程序也不知道它到底是“死”了还是在后台慢慢运行,所以特地看了看,progressbar通常结合线程使用(可能是handler消息推送、用户另起线程或者程序的UI线程),不过自己的线程实在忘挺多的了。。。而且当初也不是学得很好。。。希望多写关于它的东东好更好地理解并活用它吧。
推荐阅读:
关于ProgressBar的知识点如下:
在xml的设置中可以设置进度条的样式
小圆形:style="?android:attr/progressBarStyleSmall"
大圆形:style="?android:attr/progressBarStyleLarge"
条形: style="?android:attr/progressBarStyleHorizontal"
android:max 设置进度条最大进度值
android:progress 设置进度条初始进度值
android:secondaryProgress 设置底层(浅色)进度值
在xml文件中加入ProgressBar空间并在主Activity中调用即可~
以后学好再进行补充和修改~不过这样应该可以简单理解程序的运行~
public class ProgressActivity extends Activity implements Runnable {
/** Called when the activity is first created. */
private Thread thread;
private ProgressBar pb ;
private boolean state ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pb = (ProgressBar) findViewById(R.id.pb);
/**实例化线程对象*/
thread = new Thread(this);
thread.start();
}
/**实现Runnable接口抽象函数*/
public void run(){
while(true){
int currentX = pb.getProgress();
int currentM = pb.getMax();
int belowX = pb.getSecondaryProgress();
if(state==false){
if(currentX >= currentM){
state = true;
}else{
pb.setProgress(currentX+1);
pb.setSecondaryProgress(belowX+1);
}
}else{
if(currentX <= 0){
state = false;
}else{
pb.setProgress(currentX-1);
pb.setSecondaryProgress(belowX-1);
}
}
try{
Thread.sleep(50);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}