RatingBar的自定义
RatingBar的實(shí)現(xiàn)其實(shí)是很簡(jiǎn)單的,只要在xml布局文件中寫(xiě)就行了
范例:
在主布局文件中,只需要寫(xiě)<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一般都設(shè)置成wrap_content ,避免圖片顯示不全的問(wèn)題
numStars是星星顯示的個(gè)數(shù),即評(píng)分級(jí)數(shù)
stepSize可以理解為一個(gè)評(píng)分單位,這里設(shè)置為0.1就是最小可以評(píng)0.1顆星星
rating是當(dāng)前評(píng)分的星星顆數(shù),這里設(shè)置為2.5就是當(dāng)前有兩個(gè)半星星被評(píng)了分
其中,在main.xml文件中的第9行,style就是自定義RatingBar的關(guān)鍵之處,因此,需要在res/values目錄下寫(xiě)一個(gè)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"要對(duì)應(yīng)于main.xml文件中的style="@style/myRatingBar"
<item name="android:minHeight">44dip</item>
<item name="android:maxHeight">44dip</item>
這兩個(gè)是設(shè)置RatingBar的大小的
<item name="android:progressDrawable">@drawable/rating_bar</item>
這個(gè)是設(shè)置RatingBar樣式的,默認(rèn)的RatingBar是星星的圖片,如果想用自己的圖片的話,就在res/drawable目錄下寫(xiě)一個(gè)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設(shè)置為沒(méi)有評(píng)分時(shí)的圖片
progress設(shè)置為評(píng)分之后的效果圖片
系統(tǒng)會(huì)自動(dòng)生成中間過(guò)程的效果的圖片
在background里也可以設(shè)置背景效果,這里我寫(xiě)了一個(gè)點(diǎn)擊RatingBar發(fā)生變化的效果
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的自定義就寫(xiě)完了。
貼上效果圖:(因?yàn)閳D片是隨便找的,而且找的也是星星,很丑,勿噴)
轉(zhuǎn)載于:https://www.cnblogs.com/joeleedreamer/p/4662776.html
總結(jié)
以上是生活随笔為你收集整理的RatingBar的自定义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1992-2021合集 全国大学生数学建
- 下一篇: 全国计算机等级考试题库二级C操作题100