android SeekBar自定义开发实例
1、新建一个android工程,名称SeekBarAuto,其他参数可以自己设置,参见下图


2、一个SeekBar是由滑块和滑竿两部分组成的。所以实现自定义的滑块和滑竿,就能达到自己需要的效果。
自定义滑块的实现:在我们自定义的Seekbar中,可以使用两张图片来分别表示滑块按下和未按下,获取焦点与未获取焦点的状态。
在drawable文件夹下定义seekbar_thumb.xml,作为滑块的样式文件,以及相应的图片资源。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下状态-->
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/bar" />
<!-- 普通无焦点状态 -拖动按钮-->
<item
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/bar" />
<!-- 有焦点状态-->
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/select" />
<!-- 有焦点 -->
<item
android:state_focused="true"
android:drawable="@drawable/select"/>
</selector>




3、要实现自定义的滑竿式样,可以通过设置滑竿背景、进度条式样以及第二进度条式样来实现。具体可以在工程的drawable目录下新建seekbar_style.xml文件,并通过设置background,progress,secondaryProgress的android:drawable属性,来实现滑竿背景、进度条式样以及第二进度条式样。
<?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/unselect"
/>
<item android:id="@android:id/progress"
android:drawable="@drawable/select"/>
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/select"/>
</layer-list>

4、在main.xml中配置seekbar的属性
<SeekBar
android:layout_width="321px" //配置宽度
android:layout_height="wrap_content" //配置高度
android:layout_centerInParent="true" //在父控件中间
android:maxHeight="20px" //最大高度20px
android:minHeight="20px" //最小高度20px
android:paddingLeft="18px" //距离左边18px
android:paddingRight="18px" //距离右边18px
android:max="100" //最大值100
android:progressDrawable="@drawable/seekbar_style" //这个很关键
android:thumb="@drawable/seekbar_thumb"//这个很关键
android:id="@+id/seekBar"/>

5、观察程序运行结果,可以看见

