带有十进制值的SeekBar

时间:2011-06-01 07:28:51

标签: android seekbar

我是否创建了一个使用小数值的创建SeekBar

例如,它会显示

0.00.10.20.3,...,5.55.65.7 ,. ..,9.910.0

2 个答案:

答案 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;
    }