使用Ratingbar做一個完成度的評定顯示:
系統(tǒng)默認(rèn)的Ratingbar顏色并不合適使用。
此處需要自定義。
參考網(wǎng)上一些文章,寫一下總結(jié)。
一、設(shè)置RatingBar顯示的資源圖片
在drawable文件加下新建一個layout-list類的文件:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/star_disable" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/star_enable" />
<--
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_enable" />-->
</layer-list>
屬性說明:此文件用于設(shè)置不同的狀態(tài)下的RatingBar的圖片樣式
- background:默認(rèn)的顯示是RatingBar的樣式(ps:比如一顆灰色的星星);
- secondaryProgress:與用戶交互式(選中評價等級)時的過度樣式,此處因為不與用戶做交互因此注釋;
- progress:當(dāng)選中這的等級的時候RatingBar的樣式。
二、設(shè)置需要的RatingBar的樣式。
此處可以設(shè)置在Style文件中也可以直接在使用RatingBar時設(shè)置。
(1)設(shè)置每一星星的背景:
android:progressDrawable="@drawable/rating_bar_bg"
ps:此處使用剛剛寫的layout-list文件,需注意的是使用的是progressDrawable屬性而不是Drawable;drawable設(shè)置的是整個RatingBar的背景,而progressDrawable設(shè)置的是RatingBar中單個圖像不同狀態(tài)的背景。
(2)設(shè)置時候與用戶交互(用戶是否可以點擊和選中等級,即禁止用戶點擊RatingBar時修改RatingBar的值)
android:isIndicator="true"
<!--為true時不可交互,false時可交互。-->
(3)設(shè)置總共的等級總數(shù):
android:numStars="5"
(4)minHeight和minWidth屬性:
android:minHeight="30px"
android:minWidth="30px"
PS:此處注意,在自定義RatingBar時使用自己的圖片會發(fā)現(xiàn)出現(xiàn)拉伸的問題,則將圖片的真實大小設(shè)置到這兩個屬性上課解決問題。
(5)設(shè)置顯示當(dāng)前的評價等級:
設(shè)置rating屬性來顯示。