最近项目中要用到seekbar来调节相机的焦距,于是乎打开sdk文档,先看下它的继承体系:
这里可以看出seekbar是继承porgressbar的,一般情况下系统自带的bar比较丑,没法看,要美化,或者重绘。
因为上一个项目使用到了progressbar,而且做了特殊处理,所以我猜想是不是也能够搬到seekbar上。
我继续看文档:
他自己的有一个android:thumb属性,我查了下字典thumb意思是拇指,也是滑动的图片,这个可以替换。其他的属性继承自view和progressbar了。看来progressbar的属性也能用到seekbar上。填充颜色啊,背景啊,之类的。
上一个版本我的progressbar是这样编写的:
布局文件:
<ProgressBar
android:id="@+id/downloadbar"
android:layout_width="fill_parent"
android:layout_height="10dip"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/progressbar_layer_list"
android:background="@drawable/progressbar_box"
/>
progressbar_layer_list.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">
<clip>
<shape>
<corners android:radius="15dip" />
<gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.75"/>
</shape>
</clip>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="15dip" />
<gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.75"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.25"/>
<corners android:radius="15dip"/>
</shape>
</clip>
</item>
</layer-list>
<!--android:drawable="@drawable/progressbar_stroke"-->
背景图片:progressbar_box就不上传了
效果如下:
比系统至少要好看吧,当然每个人审美不一样,呵呵