1.xml中使用ratingbar:
<RatingBar android:id="@+id/rbscore" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/ratingBarStyleSmall" //使用小bar风格 android:layout_marginTop="5dp" android:numStars="5" //一共5颗星 android:rating="2.5" //默认2.5颗星 android:stepSize="0.5" //最小精度为0.5 android:max="10" //配合progress使用,设置总progress是10,如果progress为5,就是一半星(2.5颗星) android:progressDrawable="@drawable/layer_ratingbar" //自定义bar的图片 />
progressDrawable定义为一个layerlist:
<?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="@mipmap/ic_star_unselecte"/> <item android:id="@android:id/secondaryProgress" android:drawable="@mipmap/ic_star_unselecte"/> <item android:id="@android:id/progress" android:drawable="@mipmap/ic_star_selected"/> </layer-list>
secondaryProgress相当于progressbar里的第二进度,不定义这个,不能显示半颗星
setrating和setprogress的区别:前者设置选中的星星数,比如总的星星数是5,设置为2.5,显示2.5颗星,后者设置分值,由max设置总分,progress设置当前得分,按比例设置星星数