大部分來自轉載:http://www.reibang.com/p/28fe1335bfde 感謝摇庙。
添加一些小東西精耐。
1诽偷、首先在Drawable下建立five_rating_bar.xml
<?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_border_hide" />
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_border_hide" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/star_border_show" />
</layer-list>
item backgroud:是用來填充背景圖片的,和進度條非常類似皱坛,當我們設置最高評分時(android:numStars)编曼,系統(tǒng)就會根據我們的設置豆巨,來畫出以星星為單位的背景(假如android:numStars="5",就會畫出5顆灰色的星星)
item progress:是用來在背景圖片基礎上進行填充的指示屬性(和進度條類似掐场,第一進度位置)
item secondaryProgress:同progress一樣屬于第二進度位置(如果不定義這個往扔,進度條拖動,每次就畫出一整顆星星(亮)熊户,第二進度(暗)沒有覆蓋掉第一進度之后的位置萍膛,從左往右是拖不出來N.5顆星星的,這樣評分效果就不完整)
2嚷堡、在values/styles文件夾下件一個自己的style
<style name="fiveRatingBar"parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/five_rating_bar</item>
<item name="android:minHeight">20dp</item>
<item name="android:maxHeight">20dp</item>
</style>
注意以下兩個設置蝗罗,是根據切圖設置的大小艇棕,否則會出現(xiàn)“小尾巴”的情況
<item name="android:minHeight">20dp</item>
<item name="android:maxHeight">20dp</item>
新建樣式是為了方便在應用RatingBar的時候方便使用,布局中RatingBar如下
<RatingBar
android:id="@+id/my_rat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/fiveRatingBar"
android:layout_gravity="center"
android:numStars="5"
android:layout_marginLeft="10dp"
android:rating="4"/>
到這就基本大功告成了
RatingBarjiben 基本屬性
android:isIndicator RatingBar是否是一個指示器(用戶無法進行更改串塑,只用于顯示評分)
android:numStars 顯示的星型數量沼琉,必須是一個整形值,像“5”桩匪。
android:rating 默認的評分打瘪,必須是浮點類型,像“1.2”傻昙。
android:stepSize 評分的步長闺骚,必須是浮點類型,像“1.2”妆档。
這里再寫一個小問題僻爽,如還有其他問題,請分享出來在留言區(qū)贾惦,一起學習进泼。
1、間距問題:
直接然UI小妹妹纤虽,給你切圖的時候直接留出間距就好了乳绕,??