seekbar

2018-04-07  本文已影响0人  coder乔

最近在写APP的过程中用到了seekbar,原生的seekbar系统以及APP界面不搭,所以需要自己设置seekbar的样式,过程中遇到了一些小问题,在此记录以备后续查询:

  1. 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即可显示出来;

  1. thumb会挡住一部分的progress;
    此部分还未测试,后续有需要再补充。。
上一篇下一篇

猜你喜欢

热点阅读