<androidx.appcompat.widget.AppCompatSeekBar
android:layout_width="match_parent"
android:minHeight="6dp"
android:maxHeight="6dp"
android:splitTrack="false"
android:thumb="@drawable/shape_thumb_seekbar_music_player"
android:progressDrawable="@drawable/music_player_seekbar"
android:layout_height="wrap_content"/>
配置参数说明:
minHeight、maxHeight限定了SeekBar进度条的高度。
progressDrawable:进度条的样式配置。这里可以使用自定义的layer-list,下方的示例代码都使用最简单的纯色背景,可以定义渐变色等,其中
@android:id/background 定义了进度条的背景样式。@android:id/secondaryProgress 常用做缓冲的进度。@android:id/progress 一般用来表示实际的进度。如下代码。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--SeekBar进度条的底色-->
<item android:id="@android:id/background">
<shape>
<corners android:radius="4dp" />
<solid android:color="#AFA394"/>
</shape>
</item>
<!-- SeekBar缓冲进度条 -->
<item android:id="@android:id/secondaryProgress">
<shape>
<corners android:radius="4dp"/>
<solid android:color="#A1FFFFFF"/>
</shape>
</item>
<!--定义seekbar滑动条进度颜色-->
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="4dp"/>
<solid android:color="#FFFFFF"/>
</shape>
</clip>
</item>
</layer-list>
thumb:进度条上的指示器的样式引用。可以使用图片,也可使用自定义的shape,如下代码
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<size android:width="24dp" android:height="24dp"/>
<corners android:radius="12dp"/>
</shape>
splitTrack如果thumb设置透明图片之后,发现图片四周并未透明,则可将此值设置为false。
thumbOffset设置thumb之后,如果尺寸过大,会导致被截断,设置thumbOffset=0dp之后会计算指示器的尺寸,让其显示完全。如下图: