先上效果图:
1.在drawable中定义进度条样式:白色背景,浅蓝色已完成进度条
layer_seekbar.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 整个进度条背景 -->
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<solid android:color="@color/white"/>
</shape>
</item>
<!-- 省略了二级进度条背景 -->
<!-- 已完成的进度条背景 -->
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<solid android:color="@color/blue"/>
</shape>
</clip>
</item>
</layer-list>
2.在drawable中定义滑动块样式:深蓝色圆角矩形形状
shape_seekbar_thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="@color/mediumBlue"
android:startColor="@color/mediumBlue" />
<size
android:height="40dp"
android:width="20dp" />
<corners android:radius="10dp"/>
</shape>
3.在布局中直接设置属性即可:
<SeekBar
android:layout_width="match_content"
android:layout_height="wrap_content"
android:minHeight="15dp"
android:maxHeight="15dp"
android:id="@+id/delayMeetingDialogSeekBar"
android:progressDrawable="@drawable/layer_seekbar"
android:thumb="@drawable/shape_seekbar_thumb"
android:thumbOffset="0dip"
android:background="@null"
/>
注意事项:
1.layout_height和minHeight,maxHeight共同确定进度条的高度,不设置后两项的话滑动块会和进度条同高或不显示进度条
2.progressDrawable和thumb分别设置进度条和滑动块的样式,直接引用前面的xml
3.thumbOffset设置滑块在0和100%的位置,不设置的话会超出进度条
4.background设置为null后点击不会有点击背景色