seekbar
2018-04-07 本文已影响0人
coder乔
最近在写APP的过程中用到了seekbar,原生的seekbar系统以及APP界面不搭,所以需要自己设置seekbar的样式,过程中遇到了一些小问题,在此记录以备后续查询:
- seekbar是Android原生控件,即进度条,可以设置progress和thumb的样式:
progress
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 设置background 样式 如下是一张资源图片-->
<item
android:id="@android:id/background"
android:drawable="@drawable/*****">
</item>
<!-- 设置 seekbar进度位置的效果-->
<item
android:id="@android:id/progress"
android:drawable="@drawable/******">
</item>
<!-- 设置 seekbar第二个进度位置-->
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/*****">
</item>
</layer-list>
即设置背景条的进度状态和未达到的状态,可以设置两种效果,类似于看视频时有当前播放进度和缓冲进度这种;
thumb:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:state_pressed="true"
android:drawable="@drawable/*****">
</item>
<item
android:drawable="@drawable/*****">
</item>
</selector>
即设置thumb的正常状态和按压状态
xml:
<SeekBar
android:id="@+id/seekbar"
android:layout_width="@dimen/seekbar_w"
android:layout_height="@dimen/seekbar_h"
android:progressDrawable="@drawable/seekbar"
android:thumb="@drawable/selector_thumb" />
设置自定义seekbar完成之后,thumb没有显示出来,导致界面看起来很诡异:
从效果上看,明显是seekbar的高度设置为6个px,而thumb图片则是24px的高度,导致出现thumb显示不全,而将height设置为24px时则整个progress都变成了24px的高度;
这里需要设置:
Android:minHeight = "6px"
Android:maxHeight = "6px"
这里设置的并非是整个seekbar的高度,而是背景图案progress的高度,并将height设置成wrap_content即可显示出来;
- thumb会挡住一部分的progress;
此部分还未测试,后续有需要再补充。。