Android之SeekBar定制

1、SeekBar样式定制
xml文件中:
 <SeekBar
            android:id="@+id/seekbar_voice"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:maxHeight="5dp"
            android:minHeight="5dp"
            android:progressDrawable="@drawable/seekbar_voice_style"
            android:thumb="@drawable/voice_thumb" >
        </SeekBar>
其中,seekbar_voice_style.xml设定进度条的进度和背景样式:
1)用图片:
    <?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

 

    <!-- 背景图 -->

 

    <item

 

        android:id="@+android:id/background"

 

        android:drawable="@drawable/bg_voice"/>

 

    <!-- 全部能量图 -->

 

    <item

 

        android:id="@+android:id/secondaryProgress"

 

        android:drawable="@drawable/bg_voice"/>

 

    <!-- 进和能量图 -->

 

    <item

 

        android:id="@+android:id/progress"

 

        android:drawable="@drawable/bg_progress"/>

 

</layer-list>

2)用颜色:
<?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" />
            <gradient
                android:angle="270"
                android:centerColor="#ff5a5d5a"
                android:centerY="0.75"
                android:endColor="#ff747674"
                android:startColor="#ff9d9e9d" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:angle="270"
                    android:centerColor="#80ffb600"
                    android:centerY="0.75"
                    android:endColor="#a0ffcb00"
                    android:startColor="#80ffd300" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:angle="270"
                    android:centerColor="#ffffb600"
                    android:centerY="0.75"
                    android:endColor="#ffffcb00"
                    android:startColor="#ffffd300" />
            </shape>
        </clip>
    </item>
</layer-list>
 
 
其中,voice_thumb.xml设定滑块的样式:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">         
  3.     <!-- 按下状态 -->      
  4.     <item         
  5.         android:state_pressed="true"         
  6.         android:drawable="@drawable/seekbar_block" />        
  7.                   
  8.     <!-- 普通无焦点状态 -->      
  9.     <item         
  10.         android:state_focused="false"         
  11.         android:state_pressed="false"       
  12.         android:drawable="@drawable/seekbar_block" />     
  13.     
  14. </selector>   
 
2、seekbar高度设置:
seekbar如果没有限定高度,可能会显得很臃肿,这时候需要用到
    android:maxHeight="5dp"
    android:minHeight="5dp"
两个属性。
原文地址:https://www.cnblogs.com/shenchanghui/p/4867530.html