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