自定义Seekbar样式

1,160 阅读1分钟

一般情况下,一些水平的进度条可以用Seekbar来实现。如下图所示:

捕获.JPG

实现代码:

<SeekBar
    android:id="@+id/seekbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100"
    android:maxHeight="10dp"
    android:minHeight="10dp"
    android:progress="50"
    android:progressDrawable="@drawable/my_seek_bar_style"
    android:splitTrack="false"
    android:thumb="@drawable/round_dot" />

在drawable下新建my_seek_bar_style.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="15dp" />
            <solid android:color="#ff0000" />
        </shape>
    </item>
    <!--进度-->
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <!--进度条圆角、进度条颜色 -->
                <corners android:radius="15dp" />
                <solid android:color="#3170DF" />
            </shape>
        </clip>
    </item>

</layer-list>

在drawable下新建round_dot.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <!-- 设置圆形的颜色为红色 -->
    <solid android:color="#3170DF" />
    <!-- 设置圆形的宽度为30dp -->
    <!-- 设置圆形的高度为30dp -->
    <size
        android:width="30dp"
        android:height="30dp" />

</shape>