(十)关于SeekBar的几点介绍

在开发简聆项目时,肯定要使用到进度条SeekBar,那么现在就简单介绍一下

先从xml属性说起吧

thumb:设置SeekBar拖动按钮图片的属性

progressDrawable:设置拖动条颜色和背景的属性

这里可以自己在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">
        <shape>
            <corners android:radius="1dp" />
            <solid android:color="@color/white_24p" />
        </shape>
    </item>
    <!--progress表示实际已经写入磁盘的进度-->
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="1dp" />
                <solid android:color="@color/red" />
            </shape>
        </clip>
    </item>
    <!--secondaryprogress可以表示包含缓冲区的进度-->
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="1dp" />
                <solid android:color="@color/red_30p" />
            </shape>
        </clip>
    </item>
</layer-list>
minHeight::最小高度

maxHeight:最大高度

接下来介绍几个方法

setMax():设置进度条最大值

setProgress():设置当前进度值

接下来,重点来了!

setOnSeekBarChangeListener():拖动监听,这里要重写三个方法

这三个方法都很重要,我们一一介绍

public void onProgressChanged(SeekBar seekBar, int i, boolean fromUser) 

只要进度条发生改变就会调用此方法

这里的改变是指你拖动进度条或者用代码修改了进度条

注意到这个方法的第三个参数了吗?

如果你是人为手指拖动,返回true

如果是代码(包括广播等等)修改了进度,则返回false

也就是说,

你调用setProgress()修改进度时这个监听方法也会被调用一次哦!

而且,这个方法在你手动拖动的时候会不断地被调用。

这是很多人用不好这个方法的原因,

其实弄懂了就好了。

public void onStartTrackingTouch(SeekBar seekBar) 
这个方法在你拖动过程中被调用

就是你手指按下去-->-拖动-->抬起来

这个方法会被调用一次

public void onStopTrackingTouch(SeekBar seekBar) {
这个方法就是你手指拖动完后抬起来被调用了

关于SeekBar的基本用法就介绍到这里了,欢迎指正!

猜你喜欢

转载自blog.csdn.net/android_xiong_st/article/details/78492250