概述
RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。
当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。
只有当布局的宽被设置为wrap content时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。
次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。
XML属性
属性名称 | 描述 |
---|---|
android:isIndicator | RatingBar是否是一个指示器(用户无法进行更改)true/false |
android:numStars | 显示的星型数量,必须是一个整形值,像“100”。 |
android:rating | 默认的评分,必须是浮点类型,像“1.2”。 |
android:stepSize | 评分的步长,必须是浮点类型,像“1.2”。 |
xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns: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"tools:context="com.zjs.ratingbar.MainActivity"><RatingBarandroid:id="@+id/ratingbar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:isIndicator="false"android:maxHeight="75dp"android:minHeight="75dp"android:numStars="5"android:progressTint="@android:color/holo_green_light"android:rating="1"android:stepSize="0.5"/>
</LinearLayout>
Activity代码
package com.zjs.ratingbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private RatingBar mRatingBar;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initlistener();
}private void initView() {mRatingBar = (RatingBar) findViewById(R.id.ratingbar);
}private void initlistener() {mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {@Overridepublic void onRatingChanged(RatingBar ratingBar, float rating, boolean formUser) {float rating1 = mRatingBar.getRating();int numStars = mRatingBar.getNumStars();float stepSize = mRatingBar.getStepSize();Toast.makeText(MainActivity.this, rating1 + " " + numStars + " " + stepSize + " ", Toast.LENGTH_SHORT).show();}});
}
}