1、嵌套类
接口:RatingBar.OnRatingBarChangeListener
一个回调函数,当星级进度改变时修改客户端的星级。
2、XML属性
属性名称 | 描述 |
android:isIndicator | RatingBar是否是一个指示器(用户无法进行更改) |
android:numStars | 显示的星型数量,必须是一个整形值,像“100”。 |
android:rating | 默认的评分,必须是浮点类型,像“1.2”。 |
android:stepSize | 评分的步长,必须是浮点类型,像“1.2”。 |
3、公共方法
public int getNumStars ()
返回显示的星型数量
返回值
显示的星型数量
public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()
返回值
监听器(可能为空)监听评分改变事件
public float getRating ()
获取当前的评分(填充的星型的数量)
返回值
当前的评分
public float getStepSize ()
获取评分条的步长
返回值
步长
public boolean isIndicator ()
返回值
判断当前的评分条是否仅仅是一个指示器(注:即能否被修改)
public void setIsIndicator (boolean isIndicator)
设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了)
参数
isIndicator Bool值,是否是一个指示器
public synchronized void setMax (int max)
设置评分等级的范围,从0到max
参数
max 评分条最大范围。
public void setNumStars (int numStars)
设置显示的星型的数量。为了能够正常显示它们,建议将当前widget的布局宽度设置为
wrap content
参数
numStars 星型的数量
public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)
设置当评分等级发生改变时回调的监听器
参数
listener 监听器
public void setRating (float rating)
设置分数(星型的数量)
参数
rating 设置的分数
public void setStepSize (float stepSize)
设置当前评分条的步长(step size)
参数
stepSize 评分条的步进。例如:如果想要半个星星,它的值为0.5。
4、自定义RatingBar
1)布局里面的RatingBar控件定义:
<RatingBar
style="@style/foodRatingBar"
Android:stepSize="1.0" 步长
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:rating="3" 默认选中的星数量
android:id="@+id/ratingbarId">
</RatingBar>
2)定义第一步中的style:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
<!--指向star_rating_bar_full.xml文件 -->
<item name="android:progressDrawable">@drawable/star_rating_bar_full</item>
<item name="android:minHeight">31dip</item>
<item name="android:maxHeight">31dip</item>
</style>
</resources>
3)定义第二步用到的star_rating_bar_full
<?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_ratingbar_empty"
/>
<!-- 没选中状态 -->
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/star_ratingbar_empty" />
<!-- 选中状态 -->
<item android:id="@+android:id/progress"
android:drawable="@drawable/star_ratingbar_full" />
</layer-list>