AndroidDéfinir la valeur de pas (incrément) pour RangeSeekBar personnalisé


Introduction

Une personnalisation de la gamme Android RangeSeekBar proposée par Alex Florescu sur https://github.com/anothem/android-range-seek-bar

Il permet de définir une valeur de pas (incrément), lors du déplacement de la barre de recherche

Remarques

1- Ajouter l'attribut d'incrément dans attrs.xml

<attr name="increment" format="integer|float"/>

2- Définir une valeur par défaut dans RangeSeekBar.java et créer l’attribut également

private static final int DEFAULT_INCREMENT = 1;
private int increment;

3- Initier la valeur d'incrémentation dans le paramètre privé void init (Contexte contextuel, AttributeSet attrs)

if (attrs == null) 
    increment = DEFAULT_INCREMENT;
else 
    increment = a.getInt(R.styleable.RangeSeekBar_increment, DEFAULT_INCREMENT);

4- Définir la valeur d'incrémentation dans un void onDraw synchronisé protégé (@NonNull Canvas canvas)

Vous devrez remplacer la valeur minText et maxText. Donc au lieu de:

  • minText = valueToString (getSelectedMinValue ());
  • maxText = valueToString (getSelectedMaxValue ());

Vous aurez: int x;

        x = (int) ((getSelectedMinValue().intValue()+increment)/increment);
        x = x*increment;
        if (x<absoluteMaxValue.intValue()) 
            minText = ""+x;
        else
            minText=""+(absoluteMaxValue.intValue()-increment);
        
        
        x = (int) ((getSelectedMaxValue().intValue()+increment)/increment);
        x = x*increment;
        maxText = ""+x;

5 - Il ne vous reste plus qu'à l'utiliser. J'espère que cela aide

Définir la valeur de pas (incrément) pour RangeSeekBar personnalisé Exemples Liés