android自带的SeekBar样式比较古板,如果我们想让自己的SeekBar炫起来,那么可以考虑使用DiscreteSeekBar。DiscreteSeekBar是GitHub上的一个开源控件,地址https://github.com/AnderWeb/discreteSeekBar,那么我们今天就来看看DiscreteSeekBar的使用。
先来看一张效果图:
上面那个红色的SeekBar就是android自带的SeekBar,下面的是DiscreteSeekBar,当我们拖动的时候,上面会有一个气泡实时显示当前值,我们一起来看看怎么做。
最近刚刚开始使用Android Studio,感觉还不错,所以这个Demo就用As来做了,我们首先要在build.gradle中添加依赖:
1
|
compile
'org.adw.library:discrete-seekbar:1.0.0'
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
android:paddingBottom=
"@dimen/activity_vertical_margin"
android:paddingLeft=
"@dimen/activity_horizontal_margin"
android:paddingRight=
"@dimen/activity_horizontal_margin"
android:paddingTop=
"@dimen/activity_vertical_margin"
>
<SeekBar
android:id=
"@+id/seekb2"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"100dp"
android:max=
"100"
/>
<org.adw.library.widgets.discreteseekbar.DiscreteSeekBar
android:id=
"@+id/seekb1"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:dsb_indicatorColor=
"#05f75e"
app:dsb_indicatorFormatter=
"百分之%03d"
app:dsb_indicatorTextAppearance=
"?android:attr/textAppearanceSmall"
app:dsb_progressColor=
"#999999"
app:dsb_max=
"100"
app:dsb_min=
"0"
app:dsb_trackColor=
"#440be2"
app:dsb_mirrorForRtl=
"false"
app:dsb_rippleColor=
"#fc1307"
app:dsb_value=
"20"
/>
</LinearLayout>
|
dsb_indicatorColor表示气泡的颜色
dsb_progressColor表示SeekBar的颜色
dsb_trackColor表示进度条中那一条细线的颜色
dsb_rippleColor表示手指滑动地方的颜色
dsb_indicatorFormatter表示气泡中文字的显示格式,比如:
1
|
app:dsb_indicatorFormatter=
"百分之%03d"
|
dsb_indicatorTextAppearance表示气泡中文本的显示样式
app:dsb_max="100"
app:dsb_min="0" 这两个分别表示DiscreteSeekBar的最大值和最小值
dsb_value表示DiscreteSeekBar的当前值...。
当然,上面这些属性我们也可以在Java代码中进行设置。