一.星级评分条的概念
星级评分条志拖动条类似,都允许用户拖动来改变进度,所不同的是,星级评分条通过星星显示进度.通常情况下.使用星级评分条表示对某一事务的支持度或是对某种服务的满意程度,如淘宝网中对卖家的好评度。
(一)XML配置:
<RatingBar
android:id="@+id/myRatingBar"
android:layout_width="match_parent"
android:numStars="5"
android:rating="2.5"
android:isIndicator="true"
android:stepSize="0.5"
android:layout_height="wrap_content"/>
(二)常用属性:
- android:numStars=”5” 指定星级评分条有多少个星
- android:rating=”2.5” 默认选中多少个星
- android:isIndicator=”true” 指定星级评分条是否允许用户改变,true为不改变
- android:stepSize=”0.5” 指定每次需要改变多少个星星,默认为0.5
(三)监听事件:
监听评分条值变化事件
batingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
//同ProgressBar
//当进度改变时
//rating代表改变的星级数
//而fromUser代表是否是用户的操作改变的,如果为false,一般是我们代码中进行了进度设置。如果为true代表的是用户手动拖动拖动条。
}
});
二.简单演示星级条的使用示例
(一)布局文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RatingBar
android:id="@+id/main_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="4" />
</RelativeLayout>
(二)java代码设计
package com.example.lesson7_ratingbar;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.Toast;
import android.widget.RatingBar.OnRatingBarChangeListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 实例化对象
RatingBar bar = (RatingBar) findViewById(R.id.main_bar);
// 设置监听事件
bar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
Toast.makeText(MainActivity.this, "你选择了:" + rating, 0).show();
}
});
}
}
程序运行的的界面:
在三个星的位置点击选择后,显示的结果: