RatingBar的自定义
RatingBar的實現其實是很簡單的,只要在xml布局文件中寫就行了
范例:
在主布局文件中,只需要寫<RatingBar/>即可
main.xml
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context="com.jorlee.ratingbar.MainActivity" > 6 7 <RatingBar 8 android:id="@+id/rating_bar" 9 style="@style/myRatingBar" 10 android:layout_height="wrap_content" 11 android:layout_width="wrap_content" 12 android:numStars="5" 13 android:stepSize="0.1" 14 android:rating="2.5"> 15 </RatingBar> 16 17 18 </RelativeLayout>RatingBar的layout_height和layout_width一般都設置成wrap_content ,避免圖片顯示不全的問題
numStars是星星顯示的個數,即評分級數
stepSize可以理解為一個評分單位,這里設置為0.1就是最小可以評0.1顆星星
rating是當前評分的星星顆數,這里設置為2.5就是當前有兩個半星星被評了分
其中,在main.xml文件中的第9行,style就是自定義RatingBar的關鍵之處,因此,需要在res/values目錄下寫一個xml文件
RatingBar.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <style name="myRatingBar" parent="@android:style/Widget.RatingBar"> 4 ????????<item name="android:progressDrawable">@drawable/rating_bar</item> 5 ????????<item name="android:minHeight">44dip</item> 6 ????????<item name="android:maxHeight">44dip</item> 7 ????</style> 8 9 </resources>其中style name ="myRatingBar"里面的name "myRatingBar"要對應于main.xml文件中的style="@style/myRatingBar"
<item name="android:minHeight">44dip</item>
<item name="android:maxHeight">44dip</item>
這兩個是設置RatingBar的大小的
<item name="android:progressDrawable">@drawable/rating_bar</item>
這個是設置RatingBar樣式的,默認的RatingBar是星星的圖片,如果想用自己的圖片的話,就在res/drawable目錄下寫一個rating_bar.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 3 4 <item android:id="@+android:id/background" 5 android:drawable="@drawable/pre_unpre"></item> 6 7 <item android:id="@+android:id/secondaryProgress" 8 android:drawable="@drawable/empty"> 9 10 </item> 11 12 <item android:id="@+android:id/progress" 13 android:drawable="@drawable/all"> 14 </item> 15 16 </layer-list>secondaryProgress設置為沒有評分時的圖片
progress設置為評分之后的效果圖片
系統會自動生成中間過程的效果的圖片
在background里也可以設置背景效果,這里我寫了一個點擊RatingBar發生變化的效果
pre_unpre.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <selector xmlns:android="http://schemas.android.com/apk/res/android"> 3 4 <item android:state_pressed="true" 5 android:drawable="@drawable/bg710"> 6 </item> 7 8 <item android:state_pressed="false" 9 android:drawable="@drawable/empty"></item> 10 </selector>至此,RatingBar的自定義就寫完了。
貼上效果圖:(因為圖片是隨便找的,而且找的也是星星,很丑,勿噴)
轉載于:https://www.cnblogs.com/joeleedreamer/p/4662776.html
總結
以上是生活随笔為你收集整理的RatingBar的自定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1992-2021合集 全国大学生数学建
- 下一篇: 全国计算机等级考试题库二级C操作题100