Looking for android Answers? Try Ask4KnowledgeBase
Looking for android Keywords? Try Ask4Keywords

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