Est-ce que je crée un create SeekBar
qui utilise des valeurs décimales?SeekBar avec des valeurs décimales
Par exemple, il afficherait
0.0
, 0.1
, 0.2
, 0.3
, ..., 5.5
, 5.6
, 5.7
, ..., 9.9
, 10.0
Est-ce que je crée un create SeekBar
qui utilise des valeurs décimales?SeekBar avec des valeurs décimales
Par exemple, il afficherait
0.0
, 0.1
, 0.2
, 0.3
, ..., 5.5
, 5.6
, 5.7
, ..., 9.9
, 10.0
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) {}
});
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;
}