我想在Seekbar中设置一个与最大值不同的最大进度值。
例如,max将是100和最大进度50,因此进度滑块只能拖动到中间。有没有办法做到这一点?
答案 0 :(得分:1)
您可以尝试以下
int seekBarMaxValue = 100;
int seekBarDraggableMaxValue = 50;
seekBar.setMax(seekBarMaxValue );
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangetListener() {
public void onProgressChanged (SeekBar seekBar, int progress, boolean fromUser) {
seekBar.setProgress(progress > seekBarDraggableMaxValue ? seekBarDraggableMaxValue : progress);
}
});
希望它有所帮助。
答案 1 :(得分:0)
好像你只想要三个数字(例如0; 50; 100);只是假装每个数字代表另一个数字或用公约数乘以进度:
实施例
2 = 100或(2 * 50)
int int_actual_number = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
seek_sample.setMax(2);
seek_sample.setProgress(0);
seek_sample.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
int_actual_number = progress * 50;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
您可以使用不同的公约数和数量来测试此方法以满足您的需要。