public class
RatingBar
extendsAbsSeekBar
java.lang.Object
android.view.View
android.widget.ProgressBar
android.widget.AbsSeekBar
android.widget.RatingBar
RatingBar是SeekBar和ProgressBar的扩展,用星星来评级。使用的默认大小RatingBar时,用户可以触摸/拖动或使用键来设置评分,它有俩种样式(大、小),其中大的只适合指示,不适合于用户交互。
接口:
RatingBar.OnRatingBarChangeListener()//一个回调函数,当星级进度改变时修改客户端的星级。
常用属性:
android:isIndicator//RatingBar是否是一个指示器(用户无法进行更改)
android:numStars//显示的星型数量,必须是一个整形值,像 100 。
android:rating//默认的评分,必须是浮点类型,像 1.2 。
android:stepSize//评分的步长,必须是浮点类型,像 1.2 。
方法:
public int getNumStars (); // 返回显示的星型数量返回值显示的星型数量
public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ();//返回值监听器(可能为空)监听评分改变事件
public float getRating ();
//获取当前的评分(填充的星型的数量)
//返回值--当前的评分
public float getStepSize ();
//获取评分条的步长
//返回值步长
public boolean isIndicator ();
//返回值判断当前的评分条是否仅仅是一个指示器(注:即能否被修改)
public void setIsIndicator (boolean isIndicator);
//设置当前的评分条是否仅仅是一个指示器(这样用户就不能进行修改操作了)
//参数isIndicatorBool值,是否是一个指示器
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。
protected synchronized void onMeasure (int widthMeasureSpec, int heightMeasureSpec);
//权衡 view 和 content 来决定它的宽度和高度的整齐。它被measure(int, int)
//调用 并且应该被子类所覆盖,以便提供准确高效的布局测量。
//规定: 当覆盖这个方法的时候,你必须调用 setMeasuredDimension(int, int)以便
//存储精确的视图的宽和高。如果不这样做的话将触发llegalStateException异常,被函
//数 measure(int, int)抛出。调用父类 onMeasure(int, int)是合理的。
//尺寸的基本类的实现默认是背景大小,除非通过MeasureSpec允许大的尺寸。子类应
//该覆盖 onMeasure(int, int) 以便提供更好的布局大校
//如果这个方法被覆盖,子类应该负责确保标准的宽和高至少是视图的最小宽度和高度的值
//(分别为getSuggestedMinimumHeight() 和 getSuggestedMinimumWidth()两方法)。
//参数
//widthMeasureSpec受主窗口支配的水平空间要求。这个需求通
//过 View.MeasureSpec.进行编码。
//heightMeasureSpec受主窗口支配的垂直空间要求。这个需
//求通过 View.MeasureSpec.进行编码。