对于系统定义的RatingBar往往不符合你的需求,所以通常我们可以通过自定义来完成这个控件的二次变形。
准备:
1 两张图片 一张满星状态的,一张空星状态的。
然后我们就可以动手了,主要就是写个style
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/room_rating_bar</item>
<item name="android:minHeight">16dip</item>
<item name="android:maxHeight">16dip</item>
</style>
</resources>
然后这里的room_rating_bar是异步xml文件,放在drawable下,主要作用,替换三种状态的图片。(不是两张图片么,这里系统会自动帮你画好的)
<?xml version="1.0" encoding="utf-8"?>
<!--
This is the rating bar drawable that is used to show a room num.
-->
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
android:drawable="@drawable/room_unselect"></item>
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/room_unselect"></item>
<item android:id="@+android:id/progress"
android:drawable="@drawable/room_select"></item>
</layer-list>
最后在布局文件引用这个style 就可以了
style="@style/roomRatingBar"
大功告成,快去测试吧