85

SeekBar の最小値を定義する方法は? これは XML レイアウトで行われますか、それともプログラムで定義する必要がありますか?

基本的に、最小値を 0 から 0.2 に変更する必要があります

4

13 に答える 13

125

SeekBar の最小値を定義する方法は?

最小値を定義することはできません。です0

基本的に、最小値を 0 から 0.2 に変更する必要があります

値を取得したら、それに追加0.2します。

于 2010-06-13T19:50:40.337 に答える
9

基本的に、最小値を自動的に 10 に設定する size+10 を追加しました。最小値を設定するように変更できます。価値。

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    int siz = size + 10;
    txtViewFontSize.setTextSize(siz);

    Toast.makeText(this, String.valueOf(siz), Toast.LENGTH_SHORT).show();

}
于 2011-11-15T11:23:51.627 に答える
6

私にとってうまくいく私の解決策は次のとおりです。

    @Override 
 public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    if (progress <= SOME_LIMIT) {
        seekBar.setProgress(SOME_LIMIT);
    } else {
       // DO SOMETHING
    }

} 
于 2014-07-14T14:05:23.587 に答える
4

seekbar.getProgress() は常に整数値を返すため、float で進行状況を設定することはできません。次のコードは、シークバーの値が 0 の場合、textview の値を 0.2 に設定します。必要に応じて minimumVal を変更できます。

int minimumVal = 0;

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {


                if (progress >= minimumVal) {
                    seekBar.setProgress(progress);
                    textView.setText(progress);
                } else {
                    seekBar.setProgress(minimumVal);
                    textView.setText("0.2");
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
于 2015-05-30T05:25:31.850 に答える
3

この単純なライブラリを作成しました。大した量ではありませんが、時間を節約できます。

https://github.com/joaocsousa/DoubleSeekBar

于 2013-06-04T00:38:18.747 に答える
1

この方法で試すことができます:

int yourMinProgress = 10;

private SeekBar.OnSeekBarChangeListener onSeekBarChangeListener =
    new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {

            if (progress < yourMinProgress) {
                seekBar.setProgress(10);
            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    };
于 2016-09-07T20:25:29.043 に答える