文章目录
前言
seekbar是很常见的,也用的比较多,今天就整理一些seekbar相关的知识。
老生常谈,会的就跳过吧,这里只是简单的记录而已。
正文
如果不改变seekbar的progressDrawable和thumb,也就是用APP的主题样式,一般情况比较丑或者跟设计不符合,基本上都需要改动。
我们这里就是自定义,也就改变了上面两个属性。
<SeekBar
    android:id="@+id/play_sb_process"
    android:layout_width="400dp"
    android:layout_height="10dp"
    android:progressDrawable="@drawable/seekbar_progres"
    android:thumb="@drawable/seekbar_thumb" />
PS: seekbar_thumb 和 seekbar_progres都在res/drawable找那个创建的。
seekbar_progres的简介
方式一:图片
<?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_progres_bg_n" />
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/seekbar_progres_bg_n" />
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/seekbar_progres_bg_p" />
</layer-list>
提供seekbar_progres_bg_n和seekbar_progres_bg_p即可,前面的底图,后面的seek后的上层图。
这种方式需要UI工程师提供图片,由于项目中一要求风格一致,这种也方便。
方式二:使用shape自定义
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#ff51495e" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#ff51495e" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="@android:color/holo_red_light" />
            </shape>
        </clip>
    </item>
</layer-list>
此部分摘抄,连接见文末,链接一。
seekbar_thumb的简介
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/seekbar_thumb_p" android:state_pressed="true"/>
    <item android:drawable="@drawable/seekbar_thumb_n" android:state_focused="false" android:state_pressed="false"/>
</selector>
一般提供一个,当然两个也行,一个按下状态和一个正常状态。
seekbar 常见问题
一: 触摸区域小
二: 需要thumb透明状态
四:thumbOffset值的作用
五:thumb残影动画
点击seekbar外部,seekbar也出现thumb黑色圆残影动画,这个就是thumb的按下效果。
