for(int i=0;i<100;i++){
back_bar.setProgress(i);
Thread.sleep(30);
}
我想30msz刷新下进度,应该怎么写?
我这样写,发现它过30ms休眠,但是等到循环完了,它才显示出来,直接100%。不知道应该怎么写?
back_bar.setProgress(i);
Thread.sleep(30);
}
我想30msz刷新下进度,应该怎么写?
我这样写,发现它过30ms休眠,但是等到循环完了,它才显示出来,直接100%。不知道应该怎么写?
看看。demo
ProgressBar bar;
int progress = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button startButton = (Button)findViewById(R.id.startButton);
bar = (ProgressBar)findViewById(R.id.myPro);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);
}
});
}
Handler handler = new Handler(){ @Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if(msg.what == 1){
if(bar.getProgress() == bar.getMax()){
progress = 0;
}else{
progress++;
}
bar.setProgress(progress);
Message message = new Message();
message.what = 1;
handler.sendMessageDelayed(message, 1000);
}
}
};
}
记事本写的
Thread t = new Thread() {
public void run() {
// pb.incrementProgressBy(1);
while (pb.getProgress() < pb.getMax()) {
try {
sleep(30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
pb.setProgress(pb.getProgress() + 1);
}
};
t.start();