更改搜索栏的进度描述(浮点数到整数的转换)

Change progress description for seekbar (float to int conversion)

我必须分别使用 0 到 300 作为最小值和最大值的搜索栏。

但要在 -15 到 15 之间的 textView 中显示其进度。

-15(seekmin)------------0(middle)---------------15(seekmax)

 0(seekmin)-------------150(middle)-----------300(seekmax)

我把它编码成

@Override
public void onProgressChanged(SeekBar arg0, int progress, boolean arg2)
{
    int val = Math.round((float) (progress/10.0)) -15;

    eqTextView[i].setText(String.valueOf(progress));

    Log.e("SeekTest", "ing  " + progress + "VAL is" + val);
}

val 应该显示 -15 到 15 但它显示的是 -15 到 285。我知道我的逻辑是正确的但是将它转换为 int 时出现问题。

我冒昧地重写了您的 onProgressChanged 方法。我还没有测试过,但这应该可以。

@Override
public void onProgressChanged(SeekBar seekBar , int progress , boolean arg2)
{

   float ratio = (float)progress / (float)seekBar.getMax();

   int fromMinus15ToPlus15 = Math.round(ratio * 30 - 15);
   int fromZeroTo300 = Math.round(ratio * 300);

   eqTextView[i].setText(String.valueOf(fromMinus15ToPlus15));

   Log.e("SeekTest", "ing  " + progress + "VAL is" + fromMinus15ToPlus15);
}