2.1自定义滑块的实现
通过观察可以看出,滑块有两种状态:押下状态和未押下状态。当押下滑块时,滑块为高亮显示状态;当未押下滑块时,滑块为置灰状态。
所以,在我们自定义的Seekbar中,可以使用两张图片来分别表示滑块的押下和未押下状态。具体可以在工程的res/drawable目录下新建thumb.xml文件,来加载这两种张图片,并通过设置android:state_pressed属性来选择显示哪张图片。
具体的thumb.xml源代码如下:
thumb.xml源代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 滑块未压下时 -->
<item
android:state_pressed="false"
android:drawable="@drawable/thumb_grey" >
</item>
<!-- 滑块压下时 -->
<item
android:state_pressed="true"
android:drawable="@drawable/thumb_green" >
</item>
</selector>
2.2自定义滑竿的实现
要实现自定义的滑竿式样,可以通过设置滑竿背景、进度条式样以及第二进度条式样来实现。具体可以在工程的res/drawable目录下新建seekbarbackground.xml文件,并通过设置android:drawable属性来加载三张图片分别表示滑竿背景、进度条式样以及第二进度条式样。
具体的seekbarbackground.xml源代码如下:
seekbarbackground.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"
android:drawable="@drawable/seekbar_background" >
</item>
<!-- 第二进度条式样 -->
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/seekbar_secondaryprogress" >
</item>
<!-- 进度条式样 -->
<item
android:id="@android:id/progress"
android:drawable="@drawable/seekbar_progress" >
</item>
</layer-list>
2.3自定义SeekBar式样的效果
定义好了自己的滑块和滑竿式样之后,就可以在main.xml文件中加载自己定义的滑块和滑竿式样了。加载方法如下:
android:thumb="@drawable/thumb"
android:progressDrawable="@drawable/seekbarbackground"
运行后就可以看到自己定义的Seekbar式样了,如图2和图3所示。其中,图2是滑块未押下时的Seekbar式样,图3是滑块押下并滑动时的Seekbar式样。
图2 自定义SeekBar效果图1
图3 自定义SeekBar效果图2
转自点击打开链接