定义自定义 RangeSeekBar 的步长值(增量)

1-在 attrs.xml 中添加 increment 属性

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

2-在 RangeSeekBar.java 中定义默认值并同时创建属性

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

3-在 private void init 中启动增量值(Context context,AttributeSet attrs)

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

4-定义 protected synchronized void onDraw 中的增量值(@NonNull Canvas canvas)

你必须替换 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 - 现在你只需要使用它。希望能帮助到你