2011-06-01 4 views

Répondre

8

A défaut SeekBar à une valeur comprise entre 0 et 100. Lorsque la fonction onProgressChanged est appelée à partir de l'écouteur de modification de SeekBar, le numéro de progression est transmis dans le paramètre progress. Si vous souhaitez convertir cette progression en un nombre décimal compris entre 0,0 et 10,0 pour afficher ou traiter, il vous suffit de diviser la progression par 10 lorsque vous recevez une valeur de progression et de convertir cette valeur en float. . Voici quelques exemples de code:

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

Les progrès d'un SeekBar est un entier entre 0 et 100. Effectuez une opération arithmétique appropriée sur la valeur de progrès à l'échelle qu'il si vous avez besoin d'autres valeurs.

Dans votre cas, la division de 10 fera l'affaire. Quelque chose comme ça dans votre code:

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
     float decimalProgress = (float) progress/10; 
    } 
Questions connexes