android SeekBar自定义开发实例

2025-11-18 16:04:23

1、新建一个android工程,名称SeekBarAuto,其他参数可以自己设置,参见下图

android SeekBar自定义开发实例

android SeekBar自定义开发实例

2、一个SeekBar是由滑块和滑竿两部分组成的。所以实现自定义的滑块和滑竿,就能达到自己需要的效果。

自定义滑块的实现:在我们自定义的Seekbar中,可以使用两张图片来分别表示滑块按下和未按下,获取焦点与未获取焦点的状态。

在drawable文件夹下定义seekbar_thumb.xml,作为滑块的样式文件,以及相应的图片资源。

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">       

    <!-- 按下状态--> 

    <item   

        android:state_focused="true"   

        android:state_pressed="true"   

        android:drawable="@drawable/bar" />       

    <!-- 普通无焦点状态 -拖动按钮--> 

    <item   

        android:state_focused="false"   

        android:state_pressed="false" 

        android:drawable="@drawable/bar" />             

    <!-- 有焦点状态--> 

    <item   

        android:state_focused="true"   

        android:state_pressed="false"             

        android:drawable="@drawable/select" />        

    <!-- 有焦点 --> 

    <item   

        android:state_focused="true"             

        android:drawable="@drawable/select"/>

</selector>

android SeekBar自定义开发实例

android SeekBar自定义开发实例

android SeekBar自定义开发实例

android SeekBar自定义开发实例

3、要实现自定义的滑竿式样,可以通过设置滑竿背景、进度条式样以及第二进度条式样来实现。具体可以在工程的drawable目录下新建seekbar_style.xml文件,并通过设置background,progress,secondaryProgress的android:drawable属性,来实现滑竿背景、进度条式样以及第二进度条式样。

<?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/unselect"

    />

    <item android:id="@android:id/progress"

        android:drawable="@drawable/select"/>

    <item  android:id="@android:id/secondaryProgress"

           android:drawable="@drawable/select"/>

</layer-list>

android SeekBar自定义开发实例

4、在main.xml中配置seekbar的属性

<SeekBar

    android:layout_width="321px"   //配置宽度

    android:layout_height="wrap_content"  //配置高度

    android:layout_centerInParent="true" //在父控件中间

    android:maxHeight="20px"        //最大高度20px

    android:minHeight="20px"        //最小高度20px

    android:paddingLeft="18px"    //距离左边18px

    android:paddingRight="18px"  //距离右边18px

    android:max="100" //最大值100

    android:progressDrawable="@drawable/seekbar_style" //这个很关键

    android:thumb="@drawable/seekbar_thumb"//这个很关键

    android:id="@+id/seekBar"/>

android SeekBar自定义开发实例

5、观察程序运行结果,可以看见

android SeekBar自定义开发实例

android SeekBar自定义开发实例

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢