原文:http://blog.youkuaiyun.com/fff2666/article/details/50498238
android系统自带RatingBar,无法直接指定宽高,不然会出现无法全部显示的情况,使用系统自带的两个主题
?android:attr/ratingBarStyleIndicator
和
?android:attr/ratingBarStyleSmall
也只能做到固定小版或者大版。
按照以下几个步骤 可以做到自控ratingbar 宽高。
第一步 准备选中何为选中的两种星星,大小相同。
Step-1. You need your own rating stars in res/drawable
...
第二部 为星星定义选中与非选中状态
Step-2 In res/drawable
you need ratingstars.xml
as follow ...
<?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/star_null"/> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/star_null"/> <item android:id="@android:id/progress" android:drawable="@drawable/star_light"/> </layer-list>
第三步,为Ratingbar设置style,此处开始正式指定高度。
Step-3 In res/values
you need styles.xml
as follow ...
<style name="foodRatingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/ratingstars</item> <item name="android:minHeight">25dip</item> <item name="android:maxHeight">25dip</item> </style>
第四部,就可以直接使用了,间距和大小通过美工修改图片控制。
Step-4 In your layout ...
<RatingBar android:id="@+id/addcustomer_level" style="@style/foodRatingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="5" android:stepSize="1" android:rating="3" > </RatingBar>