9

how can I get the values ​​from 0.0 to 2.0 with a seekbar? values ​​should go in steps of 0.5 ( 0.0 , 0.5 , 1.0, 1.5, 2.0) can someone help me?

4

3 回答 3

20

SeekBar 扩展 ProgressBar。

ProgressBar 有一个方法

public void setMax(int max)

由于它只接受 int ,因此您必须从 int 值进行一些转换才能获得您所追求的浮点数。

这样的事情应该可以解决问题:

mSeekBar.setMax(4);
//max = 4 so the possible values are 0,1,2,3,4
seekbar.setOnSeekBarChangeListener( new OnSeekBarChangeListener(){
    public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
    {
        // TODO Auto-generated method stub
        Toast.makeText(seekBar.getContext(), "Value: "+getConvertedValue(progress), Toast.LENGTH_SHORT).show();
    }
    public void onStartTrackingTouch(SeekBar seekBar)
    {
        // TODO Auto-generated method stub
    }
    public void onStopTrackingTouch(SeekBar seekBar)
    {
        // TODO Auto-generated method stub
    }
});

这部分将在您的 onCreate() 中,您必须使用 findViewById() 或其他东西来获取对 mSeekBar 的引用。

public float getConvertedValue(int intVal){
    float floatVal = 0.0;
    floatVal = .5f * intVal;
    return floatVal;
}

这部分是您可以添加到 Activity 的另一种方法,它将在您需要的范围内从 int 转换为 float 值。

于 2013-03-26T21:36:31.717 回答
3
     textView.setProgress(0);
     textView.incrementProgressBy(1);
     textView.setMax(4);

       public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) { 

                       float progressD=(float) progress/2;
                       textView.setText(String.valueOf(progressD));

// 从 0 到 2 步 0.5

于 2016-06-08T00:45:03.437 回答
0

您应该实现自己的自定义搜索栏,使其在所需值之间跳转并坚持使用它们,您可以在此处找到有用的信息:

制作一个自定义的 Skinny ProgressBar / Seekbar

于 2013-03-26T21:28:46.317 回答