Definir valor mínimo de Android Seekbar

En este tutorial se explica cómo poner un valor mínimo y uno máximo a un Seekbar en Android Studio. Un problema muy común es que el valor mínimo por default es cero y no se puede cambiar, pero si podemos hacer algunos trucos para que por lo menos en nuestro proyecto el valor mínimo sea distinto a cero, esto te lo explicamos a continuación.

Esta es una Seekbar, podemos elegir un valor moviendo la perilla.

Valor mínimo de Android seekbar.

Valor mínimo de Android Seekbar.

El valor mínimo de un Seekbar en Android es cero (0), y hasta el momento no hay forma de modificar ese valor mínimo. Si queremos el nuestro proyecto tenga un rango de valores en el que su mínimo no sea cero, por ejemplo, de 10 a 20 en lugar de intentar cambiar el valor mínimo del seekbar, podemos hacer lo siguiente.

La forma más simple, es sumarle el valor mínimo que queremos al valor arrojado por la Seekbar, así cuando el valor sea cero (0) le sumamos el valor mínimo y ese será el valor a mostrar.

Por ejemplo, si queremos un rango de valores entre 10 y 20, podemos hacer lo siguiente:

  • Valor a mostrar = valor seekbar + 10
  • Y configuramos el valor máximo igual a 10, así el valor máximo mostrado será 20.

Cuando la seekbar sea cero, le sumamos 10 y mostraremos un 10.

Cuando la seekbar esté en su valor máximo que es 10 le sumamos 10 y mostraremos un 20.

 

Ahora vamos a escribirlo en Java.

En este caso tenemos una Seekbar discreta y en un TextView mostramos el valor seleccionado. Queremos que en el TextView se muestre un rango desde 10 hasta 20.

El valor lo actualizaremos mientras el usuario desliza la perilla. Como el valor se actualiza mientras se desliza la perilla, asi que escribimos la suma al valor mínimo en  onProgressChanged().

Valor inferior Seek Bar

Valor máximo Seekbar

El código es el siguiente:

public class MainActivity extends AppCompatActivity 
{
    private TextView txtPrueba;
    private SeekBar seek;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtPrueba = findViewById(R.id.txt_prueba);
        seek = findViewById(R.id.seekBar);

        seek.setMax(10);
        seek.setProgress(5);
        txtPrueba.setText(String.valueOf(15));

        seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                int valor = i + 10;
                txtPrueba.setText(String.valueOf(valor));
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }
}

Para má tutoriales de Android Studio ve a este enlace.

Algunos temas que te pueden interesar:

Snack bar Android, opción de deshacer.

3 formas de agregar evento onClick en Android Studio usando Java.

 EditText, mostrar símbolo y mensaje de error usando setError().