2011-06-01 19 views

Respuesta

8

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) {} 
}); 
3

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; 
    } 
Cuestiones relacionadas