AndroidОпределить значение шага (приращение) для пользовательского RangeSeekBar


Вступление

Настройка Android RangeSeekBar, предложенная Алексом Флореску на странице https://github.com/anothem/android-range-seek-bar

Он позволяет определять значение шага (приращение) при перемещении строки поиска

замечания

1- Добавьте атрибут increment в attrs.xml

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

2- Определите значение по умолчанию в RangeSeekBar.java и создайте атрибут также

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

3- Инициировать значение приращения в private void init (контекст контекста, AttributeSet attrs)

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

4- Определить значение приращения в защищенной синхронизированной пустоте onDraw (холст холста @NonNull)

Вам нужно будет заменить значение minText и maxText. Поэтому вместо:

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

У вас будет: 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 - Теперь вам просто нужно это использовать. Надеюсь, поможет

Определить значение шага (приращение) для пользовательского RangeSeekBar Связанные примеры