概述
SeekBar,拖动条。主要的要点是自定义的样式,拖动条的值,拖动条值改变的监听器等等。
1.SeekBar的重要的属性
style="@android:style/Widget.SeekBar"
指定样式
android:max="200"
最大值为200,默认是100
android:progress="100"
指定当前的值为100
android:thumb
设置滑动块的样式
android:progressDrawable
设置进度条的图片
progress值改变的监听器:
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textView.setText("Value:"+ Integer.toString( progress ) );
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.e("------------","开始滑动!");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.e("------------","停止滑动!");
}
});
2.先看看系统提供的样式:
普通版的
style="@android:style/Widget.SeekBar"
Holo版
style="@android:style/Widget.Holo.SeekBar"
DeviceDefault
style="@android:style/Widget.DeviceDefault.SeekBar"
Material
style="@android:style/Widget.Material.SeekBar"
3.自定义
1)滑块的自定义
<!-- This is the thumb on the seek bar. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_pressed" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:drawable="@drawable/seek_thumb_normal" />
</selector>
它定义的是seekbar的滑块样式,内容很简单,大家应该看得懂,分别对应着按下,选中,以及获得焦点时滑块的图片,这个是源码的,大家照葫芦画瓢就好了。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下状态 -->
<item android:state_pressed="true" android:drawable="@drawable/bg3" />
<!-- 普通无焦点状态 -->
<item android:state_focused="false" android:state_pressed="false"
android:drawable="@drawable/bg4" />
</selector>
2)进度条自定义
<style name="Widget.Material.SeekBar">
<item name="indeterminateOnly">false</item>
<item name="progressDrawable">@drawable/seekbar_track_material</item>
<item name="indeterminateDrawable">@drawable/seekbar_track_material</item>
<item name="thumb">@drawable/seekbar_thumb_material_anim</item>
<item name="splitTrack">true</item>
<item name="useDisabledAlpha">false</item>
<item name="focusable">true</item>
<item name="paddingStart">16dip</item>
<item name="paddingEnd">16dip</item>
<item name="mirrorForRtl">true</item>
<item name="background">@drawable/control_background_32dp_material</item>
</style>
当然,thumb可以直接使用属性标签:android:thumb去指定,
这里的style是自定义了很多东西,上面的这个是系统的 Material 效果的风格xml,有
- progressDrawable 效果,就是进度条的样式
- indeterminateDrawable 设置绘制不显示进度的进度条的Drawable对象
- indeterminateOnly 是否不显示进度条,true,不显示
- thumb 滑动块样式
- background 背景
4.Over
所以呢,xml绘图很重要哈哈,有木有?
网友评论