定義自定義 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 - 現在你只需要使用它。希望能幫助到你