样式
android系统自带了三种RatingBar的样式
style="@android:style/Widget.Holo.RatingBar"
style="@android:style/Widget.RatingBar"//系统默认
style="@android:style/Widget.Material.RatingBar"
style="@android:style/Widget.DeviceDefault.RatingBar"
基本上跟产品需求是不一样的,所以一般情况下需要自定义自己的style
自定义
<style name="MyRatingBar"
parent="Widget.AppCompat.RatingBar">
<item name="android:minHeight">15dp</item>
<item name="android:maxHeight">15dp</item>
<item name="android:thumb">@null</item> //设置拖动游标的样式
<item name="android:isIndicator">false</item> //是否是一个指示器(true就是是指示器就不能交互啦)
<item name="android:progressDrawable">@drawable/bg_ratingbar</item>
</style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/star_ratingbar_off"></item>
<item android:id="@android:id/progress"
android:drawable="@drawable/star_ratingbar_on"></item>
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/star_ratingbar_on"></item>
</layer-list>
background就是没有填充颜色的背景图片
progress就是需要填充的背景
secondaryProgress副进度条,没有定义这个就不会有半个星星的效果,每次都会画出一整颗星星
最终效果
RatingBar的一些属性
android:isIndicator//上面已经说过了,是否可以交互
android:numStars//int 显示的数量
android:rating//float 默认评分
android:stepSize// float 步长
getRating()//获取当前评分
public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)//监听
网友评论