概述
SeekBar,拖動(dòng)條。主要的要點(diǎn)是自定義的樣式,拖動(dòng)條的值,拖動(dòng)條值改變的監(jiān)聽(tīng)器等等。
1.SeekBar的重要的屬性
style="@android:style/Widget.SeekBar"指定樣式
android:max="200"最大值為200,默認(rèn)是100
android:progress="100"指定當(dāng)前的值為100
android:thumb設(shè)置滑動(dòng)塊的樣式
android:progressDrawable設(shè)置進(jìn)度條的圖片
progress值改變的監(jiān)聽(tīng)器:
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("------------","開(kāi)始滑動(dòng)!");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.e("------------","停止滑動(dòng)!");
}
});
2.先看看系統(tǒng)提供的樣式:
普通版的
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的滑塊樣式,內(nèi)容很簡(jiǎn)單,大家應(yīng)該看得懂,分別對(duì)應(yīng)著按下,選中,以及獲得焦點(diǎn)時(shí)滑塊的圖片,這個(gè)是源碼的,大家照葫蘆畫(huà)瓢就好了。
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下?tīng)顟B(tài) -->
<item android:state_pressed="true" android:drawable="@drawable/bg3" />
<!-- 普通無(wú)焦點(diǎn)狀態(tài) -->
<item android:state_focused="false" android:state_pressed="false"
android:drawable="@drawable/bg4" />
</selector>
2)進(jìn)度條自定義
<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>
當(dāng)然,thumb可以直接使用屬性標(biāo)簽:android:thumb去指定,
這里的style是自定義了很多東西,上面的這個(gè)是系統(tǒng)的 Material 效果的風(fēng)格xml,有
- progressDrawable 效果,就是進(jìn)度條的樣式
- indeterminateDrawable 設(shè)置繪制不顯示進(jìn)度的進(jìn)度條的Drawable對(duì)象
- indeterminateOnly 是否不顯示進(jìn)度條,true,不顯示
- thumb 滑動(dòng)塊樣式
- background 背景
4.Over
所以呢,xml繪圖很重要哈哈,有木有?