Android SeekBar 常用设置
滑块设置
android:thumb
属性用来指定滑块的样子,同时会影响整个进度条的尺寸
进度条设置
android:progressDrawable
属性用来控制整个进度条的样式,最好是drawable[layer-list]
,可以分别指定背景,二级进度条,一级进度条。即background,secondaryProgress,progress
。在layer-list
文件里面需要按这三个顺序指定对应的样式,以下提供一个例子:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:gravity="center_vertical|fill_horizontal">
<shape android:shape="rectangle">
<padding android:left="0dp" />
<size android:height="5dp" />
<solid android:color="#4000" />
<corners android:radius="3dp" />
</shape>
</item>
<item
android:id="@android:id/secondaryProgress"
android:gravity="center_vertical|fill_horizontal">
<scale android:scaleWidth="100%">
<selector>
<item android:state_enabled="false">
<color android:color="@android:color/transparent" />
</item>
<item android:drawable="@drawable/abc_scrubber_primary_mtrl_alpha" />
</selector>
</scale>
</item>
<item
android:id="@android:id/progress"
android:gravity="center_vertical|fill_horizontal">
<clip>
<shape android:shape="rectangle">
<size android:height="5dp" />
<solid android:color="#000" />
<corners android:radius="3dp" />
</shape>
</clip>
</item>
</layer-list>
没有填充满控件的处理
默认情况下SeekBar
的样式并没有填充满整个控件尺寸,需要单独将android:paddingLeft/android:paddingRight
设置为0,使用统一属性设置android:padding
都不行。另外一个属性android:thumbOffset
可以控制滑块的偏移