9

我是否创建SeekBar使用十进制值的创建?

例如,它将显示

0.0, 0.1, 0.2, 0.3, ..., 5.5, 5.6, 5.7, ..., 9.9,10.0

4

2 回答 2

15

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) {}
});
于 2011-06-01T07:44:13.603 回答
3

SeekBar 的进度是介于 0 和 100 之间的 int。如果需要其他值,请对进度值执行适当的算术运算以对其进行缩放。

在你的情况下,除以 10 就可以了。在你的代码中是这样的:

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        float decimalProgress = (float) progress/10;
    }
于 2011-06-01T07:46:48.577 回答