¿Creo crear SeekBar
que usa valores decimales?SeekBar con valores decimales
Por ejemplo, sería mostrar
0.0
, 0.1
, 0.2
, 0.3
, ..., 5.5
, 5.6
, 5.7
, ..., 9.9
, 10.0
¿Creo crear SeekBar
que usa valores decimales?SeekBar con valores decimales
Por ejemplo, sería mostrar
0.0
, 0.1
, 0.2
, 0.3
, ..., 5.5
, 5.6
, 5.7
, ..., 9.9
, 10.0
A SeekBar por defecto un valor entre 0 y 100. Cuando se llama a la función onProgressChanged
desde el detector de cambios de SeekBar, el número de progreso se pasa en el parámetro progress
.
Si desea convertir este progreso en un decimal de 0.0 -> 10.0 para mostrar o procesar, todo lo que tendría que hacer es dividir el progreso por 10 cuando recibe un valor de progreso, y convertir ese valor en un flotador . Aquí hay un código de ejemplo:
aSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
float value = ((float)progress/10.0);
// value now holds the decimal value between 0.0 and 10.0 of the progress
// Example:
// If the progress changed to 45, value would now hold 4.5
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
El progreso de un SeekBar es un entero entre 0 y 100. Realizar operación aritmética en el valor adecuado progreso escalarla si necesita otros valores.
En su caso, la división por 10 hará el truco. Algo como esto en su código:
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
float decimalProgress = (float) progress/10;
}