<SeekBar
android:id="@+id/bar_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:max="100"
android:progressDrawable="@drawable/zhinengdiandan_blue"
android:thumb="@drawable/shaixuan_btn" />
是滚动条的xml, thumb 是自定义滚动的按钮。
progressDrawable 是自定义滚动的背景。
max是最大值。
public class PriceBetween extends Activity implements OnSeekBarChangeListener {
/** 新建滚动条 */
private SeekBar see;
/** 新建textview */
private TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.pricebetween);
// 添加组件
see = (SeekBar) findViewById(R.id.bar);
txt = (TextView) findViewById(R.id.num);
// 监听进度条
see.setOnSeekBarChangeListener(this);
}
/*
* 对进度条的监听响应
*/
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
int progress = seekBar.getProgress();
/*
* 将滚动条分为 4段,对应4种人数情况 当在4个数值区间的时候,按钮会自动的滑到特定的点上
*/
// 当滑动的数值在0-13的时候,按钮就滑到 0,消费的人数是2人
if (progress < 12) {
seekBar.setProgress(0);
txt.setText("消费的人数" + 2);
}
// 当滑动的数值在12-37的时候,按钮就滑到 25,消费的人数是 3人
else if (12 <= progress && progress < 37) {
seekBar.setProgress(25);
txt.setText("消费的人数" + 3);
}
// 当滑动的数值在37-62的时候,按钮就滑到 50,消费的人数是 4-5人
else if (37 <= progress && progress < 62) {
seekBar.setProgress(50);
txt.setText("消费的人数" + ("4-5"));
}
// 当滑动的数值在62-87的时候,按钮就滑到 75,消费的人数是 6-8人
else if (62 <= progress && progress < 87) {
seekBar.setProgress(75);
txt.setText("消费的人数" + ("6-8"));
}
// 当滑动的数值在87-100的时候,按钮就滑到 100,消费的人数是 9-12人
else if (87 <= progress) {
seekBar.setProgress(100);
txt.setText("消费的人数" + ("9-12"));
}
}
}
重写了 滚动条onStopTrackingTouch方法,是滚动后的处理。onProgressChanged是在滚动条滚动的时候不断的调用该方法。onStartTrackingTouch是滚动条在开始滚动的时候调用的方法。
效果如下,