1.在布局文件中,设置布局:android:isIndicator = "true" 表示该RatingBar的数值不可改变
<RatingBar android:id="@+id/rc_rate" style="@style/fiveRatingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:max="5" android:numStars="5" android:stepSize="0.5" android:rating="4" android:isIndicator="true"/>
<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>
3.在drawable文件夹下新建five_rating_bar文件:
其中ic_star_no表示没有选中的星星图片,ic_star_half表示选中一半星星的图片,ic_star表示完全选中时的星星图片
<?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/ic_star_no" /> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/ic_star_half" /> <item android:id="@android:id/progress" android:drawable="@drawable/ic_star" /> </layer-list>
4.在界面代码代码中监听RatingBar:
RatingBar rattingStar = (RatingBar) findViewById(R.id.rc_rate); rattingStar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){ @Override public void onRatingChanged(RatingBar ratingBar,float rating,boolean fromUser){ Log.e("Log","rating="+rating);//星级数量 } });