1. 程式人生 > >Android 自定義SeekBar背景樣式

Android 自定義SeekBar背景樣式

自定義Android系統控制元件的背景樣式大同小異,現在以自定義SeekBar背景樣式走下流程:

 1.SeekBar的進度條樣式,custom_seekbar_progress.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>
            <solid android:color="#9e9e9e"/>
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#e4017f"/>
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#9e9e9e"/>
            </shape>
        </clip>
    </item>

</layer-list>

這裡是以自定義的顏色作為進度條背景,如果要使用圖片資源,那就這樣:
 <item
            android:id="@android:id/background"
            android:drawable="@drawable/seekbar_progess">
 </item>
 2.SeekBar的滑塊樣式custom_seekbar_thumb.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/seekbar_thumb_normal"
          android:state_focused="true" android:state_pressed="false"/>

    <item android:drawable="@drawable/seekbar_thumb_pressed"
          android:state_focused="true" android:state_pressed="true"/>

    <item android:drawable="@drawable/seekbar_thumb_pressed"
          android:state_focused="false"
          android:state_pressed="true"/>

    <item android:drawable="@drawable/seekbar_thumb_normal"/>

</selector>

分別定義按下狀態與鬆開狀態下的圖片.

最後在SeekBar中使用我們自定義的屬性:

<SeekBar
        android:maxHeight="3dpt"
        android:minHeight="3dp"
        android:progressDrawable="@drawable/custom_seekbar_progress"
        android:thumb="@drawable/custom_seekbar_thumb"
        ....../>

maxHeigh,minHeigh 用來指定進度條的高度.