RangeSeekBar
Introduction: 支持刻度#支持保留范围#支持负数#自定义按钮样式和背景颜色
Tags:
通过布局文件设置属性
<org.ielse.widget.RangeSeekBar
android:id="@+id/rsb_3"
android:layout_width="200dip"
app:min="0" 规则:可以拖动范围中的最小值
app:max="20" 规则:可以拖动范围中的最大值
app:cells="5" 刻度支持:将最大值和最小值四等分,比如 1-20 分成 5 份即 0,5,10,15,20
app:reserve="1" 保留距离支持:如果 cells 值为 1,那么 reserve 最小保留 1;此处 cells 分隔的最小单元为 5,reserve 将四舍五入为 5
app:seekBarResId="@mipmap/icon_seekbar" UI:按钮样式
app:lineColorSelected="#FF5151" UI:选中范围颜色
app:lineColorEdge="#FF9797" UI:边缘配色
android:layout_height="36dip"/>
通过代码设置属性
RangeSeekBar rsb1 = (RangeSeekBar) findViewById(R.id.rsb_1);
rsb1.setRules(0, 100, 20, 1);
// 设置规则,逻辑同上
设置初始默认值
rsb1.setValue(15, 66);
// 注意不符合规则 rules 的参数将抛出异常,RangeSeekBar 不背这种锅
获取响应值
- a)主动
float[] results = rsb1.getCurrentRange();
results[0] 表示当前选择的最小值
results[1] 表示当前选择的最大值
- b)回调
rsb1.setOnRangeChangedListener(new RangeSeekBar.OnRangeChangedListener() { @Override public void onRangeChanged(RangeSeekBar view, float min, float max) { t1.setText(min + " - " + max); } });
更加详细的源码分析和实现思路讲解
其它
希望你喜欢我的作品。Star
是对我的最大支持. 谢谢
此项目为很多年前,自学 android 时写的,思路可鉴。实际项目推荐使用 https://github.com/Jay-Goo/RangeSeekBar