樣式
android系統(tǒng)自帶了三種RatingBar的樣式
style="@android:style/Widget.Holo.RatingBar"
style="@android:style/Widget.RatingBar"http://系統(tǒng)默認(rèn)
style="@android:style/Widget.Material.RatingBar"
style="@android:style/Widget.DeviceDefault.RatingBar"
基本上跟產(chǎn)品需求是不一樣的咪奖,所以一般情況下需要自定義自己的style
自定義
<style name="MyRatingBar"
parent="Widget.AppCompat.RatingBar">
<item name="android:minHeight">15dp</item>
<item name="android:maxHeight">15dp</item>
<item name="android:thumb">@null</item> //設(shè)置拖動游標(biāo)的樣式
<item name="android:isIndicator">false</item> //是否是一個指示器(true就是是指示器就不能交互啦)
<item name="android:progressDrawable">@drawable/bg_ratingbar</item>
</style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/star_ratingbar_off"></item>
<item android:id="@android:id/progress"
android:drawable="@drawable/star_ratingbar_on"></item>
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_ratingbar_on"></item>
</layer-list>
background就是沒有填充顏色的背景圖片
progress就是需要填充的背景
secondaryProgress副進(jìn)度條爹殊,沒有定義這個就不會有半個星星的效果宏赘,每次都會畫出一整顆星星
最終效果
RatingBar的一些屬性
android:isIndicator//上面已經(jīng)說過了添瓷,是否可以交互
android:numStars//int 顯示的數(shù)量
android:rating//float 默認(rèn)評分
android:stepSize// float 步長
getRating()//獲取當(dāng)前評分
public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)//監(jiān)聽