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