一、Seekbar的常用属性:
android:max //滑动条的最大值
android:progress //滑动条的当前值
android:secondaryProgress //二级滑动条的进度
android:thumb //滑块的drawable
android:progressDrawable //滑动条的drawable
android:splitTrack // 是否设置一个间隙,让滑块与底部图片分隔
二、Seekbar的事件:setOnSeekBarChangeListener
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//进度条发生改变时会触发
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
Toast.makeText(SeekBarActivity.this, "当前进度条是" + progress + "/100", Toast.LENGTH_SHORT).show();
}
//按住seekbar时会触发
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Toast.makeText(SeekBarActivity.this, "按住seekbar时会触发", Toast.LENGTH_SHORT).show();
}
//放开seekbar时会触发
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Toast.makeText(SeekBarActivity.this, "放开seekbar时会触发", Toast.LENGTH_SHORT).show();
}
});
三、Seekbar使用小例
(1)SeekBar默认样式
<SeekBar android:id="@+id/seekbar_nomal" android:layout_width="160dp" android:layout_height="50dp" />
(2)SeekBar默认样式 + 删除左右两边的padding距离
<SeekBar android:id="@+id/seekbar_nomal" android:layout_width="160dp" android:layout_height="50dp" android:paddingStart="0dp" android:paddingLeft="0dp" android:paddingRight="0dp"/>
(3)SeekBar默认样式 +设置最大进度100、正在进度20、第二进度50
<SeekBar android:id="@+id/seekbar_nomal" android:layout_width="160dp" android:layout_height="50dp" android:max="100" android:progress="20" android:secondaryProgress="50" />
(4)SeekBar默认样式 +设置thumb背景
thumb背景图片:ic_seekbar_thumb.xml
<SeekBar android:id="@+id/seekbar_nomal" android:layout_width="160dp" android:layout_height="50dp" android:max="100" android:progress="20" android:secondaryProgress="50" android:thumb="@drawable/ic_seekbar_thumb"/>
(5)SeekBar自定义样式 +设置thumb滑块背景选择器 sb_thumb_selector.xml
滑块背景选择器:sb_thumb_selector.xml
<SeekBar android:id="@+id/seekbar_nomal" android:layout_width="160dp" android:layout_height="50dp" android:max="100" android:progress="20" android:secondaryProgress="50" android:thumb="@drawable/sb_thumb_selector"/>
(6)SeekBar自定义样式+设置progress进度背景选择器 sb_progress_bg.xml
layer-list图层:
<SeekBar android:id="@+id/seekbar_simple_define" android:layout_width="160dp" android:layout_height="wrap_content" android:max="100" android:progress="50" android:secondaryProgress="80" android:thumb="@drawable/sb_thumb_selector" android:progressDrawable="@drawable/sb_progress_bg"/>
添加android:splitTrack=”false”属性,不让滑块与底部图片分割,效果如图:
<SeekBar android:id="@+id/seekbar_simple_define" android:layout_width="160dp" android:layout_height="wrap_content" android:max="100" android:progress="50" android:secondaryProgress="80" android:thumb="@drawable/sb_thumb_selector" android:progressDrawable="@drawable/sb_progress_bg" android:thumbTintMode="multiply" android:splitTrack="false"/>
(6)SeekBar自定义样式(类似遥控)
设置thumb滑块背景 seekbar_thumb.xml
设置progress进度背景 seekbar_bg.xml
效果如图:(感觉滑块有点怪)
<SeekBar android:id="@+id/seekbar" android:layout_width="160dp" android:layout_height="50dp" android:thumb="@drawable/seekbar_thumb" android:progressDrawable="@drawable/seekbar_bg" android:thumbOffset="0dp" android:max="100" android:progress="50" android:paddingStart="0dp" android:paddingEnd="0dp" android:maxHeight="50dp"/>
添加android:splitTrack=”false”属性,不让滑块与底部图片分割,看上起就不怪了,效果如图:
<SeekBar android:id="@+id/seekbar" android:layout_width="160dp" android:layout_height="50dp" android:thumb="@drawable/seekbar_thumb" android:progressDrawable="@drawable/seekbar_bg" android:thumbOffset="0dp" android:max="100" android:progress="50" android:paddingStart="0dp" android:paddingEnd="0dp" android:maxHeight="50dp"
小案例中还用到了这个属性,这个属性是干什么用的呢?
android:thumbTintMode="multiply"
添加android:thumbTintMode="multiply"属性,混合模式,用于滑块着色。
关于这个属性的开发文档在下面连接里:
http://www.zhdoc.net/android/reference/android/widget/AbsSeekBar.html#attr_android:thumbTintMode