import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.SeekBar;
import android.widget.TextView;public class SeekBarDemoActivity extends Activity {
private TextView speedTexView;
private SeekBar seekBar;
private MyHandler myHandler = new MyHandler();
private boolean flag = true; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); speedTexView = (TextView) this.findViewById(R.id.speedTexView);
seekBar = (SeekBar) this.findViewById(R.id.seekBar);
// 设置拖动条的最大值
seekBar.setMax(100); myHandler.sleep(1000); // 为seekBar注册一个监听
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { // 当游标停止时
public void onStopTrackingTouch(SeekBar seekBar) {
seekBar.setProgress(seekBar.getProgress());
flag = true;
myHandler.sleep(1000); myHandler.state = seekBar.getProgress(); } // 当游标开始移动时
public void onStartTrackingTouch(SeekBar seekBar) {
flag = false;
} // 当游标被改变时(游标游动的过程中)
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
float count = (float) progress / (float) seekBar.getMax();
speedTexView.setText("进度:" + (int) (count * 100) + "%"); }
}); } public class MyHandler extends Handler { public int state = 0; public void handleMessage(Message msg) { state += 1;
seekBar.setProgress(state);
float count = (float) state / (float) seekBar.getMax();
speedTexView.setText("进度:" + (int) (count * 100) + "%");
if (flag && state < seekBar.getMax()) {
this.sleep(1000);
} } public void sleep(long time) {
this.sendMessageDelayed(this.obtainMessage(0), time);
} }}