DiscreteSeekBar是一个Material Design风格的、带有气泡指示器的拖动条。可以自定义样式,非常不错的东西。
项目地址:https://github.com/AnderWeb/discreteSeekBar
效果图:
使用起来也非常简单
如何使用
-
xml中创建
01.
<org.adw.library.widgets.discreteseekbar.DiscreteSeekBar
02.
android:id=
"@+id/discrete"
03.
android:layout_width=
"match_parent"
04.
android:layout_height=
"wrap_content"
05.
app:dsb_min=
"1"
06.
app:dsb_max=
"100"
07.
app:dsb_value=
"20"
08.
app:dsb_indicatorFormatter=
"%04d"
09.
10.
/>
2. java
01.
DiscreteSeekBar discreteSeekBar = (DiscreteSeekBar) findViewById(R.id.discrete);
02.
//设置浮动气泡的值,每次进度值改变时,都会触发
03.
discreteSeekBar.setNumericTransformer(
new
DiscreteSeekBar.NumericTransformer() {
04.
@Override
05.
public
int
transform(
int
value) {
06.
return
value *
10
;
07.
}
08.
});
09.
//进度值变化监听
10.
discreteSeekBar.setOnProgressChangeListener(
new
DiscreteSeekBar.OnProgressChangeListener(){
11.
public
void
onProgressChanged(DiscreteSeekBar seekBar,
int
value,
boolean
fromUser){
12.
13.
}
14.
15.
public
void
onStartTrackingTouch(DiscreteSeekBar seekBar){
16.
17.
}
18.
19.
public
void
onStopTrackingTouch(DiscreteSeekBar seekBar){
20.
21.
}
22.
});
属性说明
属性名 | 类型 | 使用说明 |
dsb_min | integer|dimension | 最小进度值 |
dsb_max | integer|dimension | 最大进度值 |
dsb_value | integer|dimension | 当前进度值 |
dsb_mirrorForRtl | boolean | 由于某些语言,比如阿拉伯语、希伯来语,是“从右往左”显示的,和中文、英语……是相反的。所以该属性的含义是,是否根据本地语言进行反向 。 |
dsb_allowTrackClickToDrag | boolean | 是否允许通过点击进度条上某一点,来改变进度值。默认是true |
dsb_progressColor | color|reference | 设置进度条及滑块(thumb)的颜色 |
dsb_trackColor | color|reference | 设置背景条(track)的颜色 |
dsb_indicatorTextAppearance | reference | 设置气泡(bubble)的样式 |
dsb_indicatorColor | color|reference | 设置气泡(bubble)的背景色 |
dsb_indicatorElevation | dimension | 很抱歉,这个属性我也不知道怎么用。related to android:elevation. Will only be used on API level 21+ |
dsb_indicatorFormatter | string|reference | 设置气泡指示器文字的格式 |
dsb_rippleColor | color|reference | 设置触碰点波动的颜色 |
dsb_indicatorPopupEnabled | boolean | 是否显示气泡指示器 |
| | |