9

どうすれば0.0から2.0までの値を取得できますseekbarか?値は0.5(0.0、0.5、1.0、1.5、2.0)のステップで行く必要があります誰かが私を助けることができますか?

4

3 に答える 3

20

SeekBarはProgressBarを拡張します。

ProgressBarにはメソッドがあります

public void setMax(int max)

intのみを受け入れるため、目的のfloatを取得するには、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()にあり、mSeekBarへの参照を取得するにはfindViewById()などを使用する必要があります。

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

この部分は、アクティビティに追加できるもう1つのメソッドであり、必要な範囲内で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

独自のカスタムシークバーを実装し、目的の値の間をジャンプしてそれらに固執する必要があります。ここで役立つ情報を見つけることができます。

カスタムスキニープログレスバー/シークバーの作成

于 2013-03-26T21:28:46.317 に答える