現(xiàn)在很多短視頻都會(huì)用到seekBar去調(diào)節(jié)視頻進(jìn)度,所以seekBar很有必要學(xué)習(xí)一下
本文的主要知識(shí)點(diǎn)有:
- 自定義seekBar的樣式;
- seekBar的簡(jiǎn)單使用。
關(guān)于seekBar的樣式
系統(tǒng)提供的樣式實(shí)在是太丑了,所以一般使用seekBar的時(shí)候都會(huì)自定義樣式的,關(guān)于seekBar的自定義樣式,其實(shí)就是設(shè)置一個(gè)Drawable到seekBar中去,設(shè)置之后效果還是可以得,所以我們下面就開始擼代碼吧!
1.首先就是在布局文件中設(shè)置SeekBar的xml
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="3dp"
android:minHeight="3dp"
android:progressDrawable="@drawable/seekbar_bg"
android:thumb="@drawable/seekbar_thumb_bg"/>
這里說明幾點(diǎn):
- maxHeight和minHeight 這個(gè)屬性如果不進(jìn)行設(shè)置的話拖動(dòng)條會(huì)很寬很寬的,著實(shí)難看;
- progressDrawable就是進(jìn)度條的顏色設(shè)置,后面我會(huì)把具體寫法貼出來的;
- thumb是設(shè)置焦點(diǎn)和按下等一些操作使拖動(dòng)按鈕改變的
2.seekbar的背景設(shè)置也就是上面的seekbar_bg
<?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>
<solid android:color="#ff51495e"/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<solid android:color="#f9062a"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#2db334"/>
</shape>
</clip>
</item>
</layer-list>
上面就是設(shè)置三層顏色的,其中background是底色,secondaryProgress是緩沖的顏色,progress是當(dāng)前進(jìn)度的顏色
3.設(shè)置thumb(也就是設(shè)置拖動(dòng)時(shí)、獲取焦點(diǎn)等拖動(dòng)塊的顏色)就是上面themb對(duì)應(yīng)的seekbar_thumb_bg
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--獲取焦點(diǎn)和沒有按下的時(shí)候-->
<item android:drawable="@drawable/seekbar_thumb_normal" android:state_focused="true" android:state_pressed="false"/>
<!--獲取焦點(diǎn)但按下的時(shí)候-->
<item android:drawable="@drawable/seekbar_thumb_pressed" android:state_focused="true" android:state_pressed="true"/>
<!--沒有獲取焦點(diǎn)按下的時(shí)候-->
<item android:drawable="@drawable/seekbar_thumb_pressed" android:state_focused="false" android:state_pressed="true"/>
<!--默認(rèn)的時(shí)候-->
<item android:drawable="@drawable/seekbar_thumb_normal"/>
</selector>
seekbar_thumb_normal.png
seekbar_thumb_pressed.png
基本上就這些東西了,別覺得我顏色配的丑,我只是覺得這樣明顯一些哈哈!
關(guān)于seekBar的使用
其實(shí)作為android的這個(gè)空間,沒有什么主要的,就是一個(gè)監(jiān)聽和幾個(gè)設(shè)置進(jìn)度的方法
1.常用方法
- setProgress(int value) 設(shè)置滑塊的位置
- setMax(int value) 設(shè)置進(jìn)度條的最大長(zhǎng)度
- setOnSeekBarChangeListener(OnSeekBarCHangeListener l) 設(shè)置SeekBar的進(jìn)度改變事件
- onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 這個(gè)主要是監(jiān)聽進(jìn)度改變的,這里的progress就是當(dāng)前的進(jìn)度,這個(gè)fromUser我也沒弄懂是什么意思,還請(qǐng)知道的大神說一下!
- onStartTrackingTouch(SeekBar seekBar) 這個(gè)是監(jiān)聽開始拖動(dòng)滾動(dòng)條時(shí)的操作
- onStopTrackingTouch(SeekBar seekBar) 停止拖動(dòng)滾動(dòng)條的操作
- setSecondaryProgress(int secondaryProgress) 設(shè)置緩沖的進(jìn)度
別的還真不知道寫什么了,以后有什么不知道的在往上面添加吧!