在开发简聆项目时,肯定要使用到进度条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的基本用法就介绍到这里了,欢迎指正!