项目开发中,RatingBar的使用很常见,基本用法也很简单,
<RatingBar
android:id="@+id/ratingbar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="4" />
系统提供三种style:
?android:attr/ratingBarStyle、
?android:attr/ratingBarStyleIndicator、
?android:attr/ratingBarStyleSmall
这三种style除了显示大小的不一样,还有一点需要注意ratingBarStyle默认的android:isIndicator=”false”而另外两种默认为true。但往往满足不了项目的需求,需要自定义。
自定义style步骤:
准备全选、选择一半、不选三种状态图标。如图:
项目drawable文件夹下新建ratingbar_style.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/ic_star_off" />
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/ic_star_half" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/ic_star_on" />
</layer-list>
- values目录下,打开style.xml,添加自定义代码
<style name="MyRatingBar" parent="Widget.AppCompat.RatingBar">
<item name="android:progressDrawable">
@drawable/ratingbar_style
</item>
<item name="android:minHeight">16dp</item>
<item name="android:maxHeight">16dp</item>
</style>
- 最后,在RatingBar使用自定义的style就OK了。
<RatingBar
android:id="@+id/ratingbar"
style="@style/MyRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="4" />
项目中RatingBar的使用往往是改变颜色、改变图标的形状。知道以上几点感觉已基本够用了。