在drewable下定义一个图片资源ratingbar_drawable.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/travel_hotel_search_star_gary"> </item> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/travel_hotel_search_star_gary"> </item> <item android:id="@android:id/progress" android:drawable="@drawable/travel_hotel_search_star"> </item> </layer-list>
之后再styles.xml下添加一个标签,这个style继承父style Widget.RatingBar
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/ratingbar_drawable</item> <item name="android:minHeight">48dip</item> <item name="android:maxHeight">48dip</item> </style>
布局页面
<RatingBar
android:layout_width="wrap_content"
android:layout_height="20dp"
style="@style/roomRatingBar"
android:layout_marginLeft="10dip"
android:id="@+id/ratingBar"
android:rating="1.5"
android:stepSize="0.5"
android:numStars="5"
/>
代码
ratingBar= (RatingBar)view.findViewById(R.id.ratingBar); ratingBar.setRating(4.5f); ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Log.e("星星","等级:" + rating); Log.e("星星","星星等级:" + ratingBar.getNumStars()); } });
借鉴文章:
Android 中文 API (40) —— RatingBar