我是否创建了一个使用小数值的创建SeekBar
?
例如,它会显示
0.0
,0.1
,0.2
,0.3
,...,5.5
,5.6
,5.7
,. ..,9.9
,10.0
答案 0 :(得分:12)
SeekBar默认为0到100之间的值。当从SeekBar的更改侦听器调用onProgressChanged
函数时,进度号将在progress
参数中传递。
如果您想将此进度转换为0.0的小数 - > 10.0要显示或处理,您需要做的就是在收到进度值时将进度除以10,然后将该值转换为浮点值。这是一些示例代码:
aSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
float value = ((float)progress / 10.0);
// value now holds the decimal value between 0.0 and 10.0 of the progress
// Example:
// If the progress changed to 45, value would now hold 4.5
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
答案 1 :(得分:3)
SeekBar的进度是介于0和100之间的int。如果需要其他值,请对进度值执行合适的算术运算以进行缩放。
在你的情况下,除以10就可以了。您的代码中有类似的内容:
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
float decimalProgress = (float) progress/10;
}