1. 程式人生 > >完全用樣式的 android seekbar

完全用樣式的 android seekbar

先上效果圖:

進度條

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後點擊不會有點選背景色