Android 星级评分条的基本用法
Posted 路 宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 星级评分条的基本用法相关的知识,希望对你有一定的参考价值。
一 、效果如图所示:
布局代码实现:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StarActivity">
<RatingBar
android:id="@+id/rb_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="0.5"
android:indeterminate="false"
android:rating="3"
/>
</LinearLayout>
其中属性如下:
- numStars :设置星的个数,默认为5颗星
- rating:默认点亮几颗星
- indeterminate:默认为false,表示星数可以改变,设置为true 星数不能改变
- stepSize:每次至少选择的星数,默认为0.5颗
StarActivity具体代码:
具体详解已经在注释中给出:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_star);
rb_star = findViewById(R.id.rb_star);
//获取选中的星数
String state = String.valueOf(rb_star.getRating());
//获取每次至少改变几颗星
String step = String.valueOf(rb_star.getStepSize());
//获取当前进度
String progress = String.valueOf(rb_star.getProgress());
Toast.makeText(this, "获取选中的星数:" + state, Toast.LENGTH_SHORT).show();
Toast.makeText(this, "每次改变的星数:" + step, Toast.LENGTH_SHORT).show();
Toast.makeText(this, "获取当前进度:" + progress, Toast.LENGTH_SHORT).show();
//设置评分改变监听器
rb_star.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
//获取当前进度
int progress1 = ratingBar.getProgress();
Toast.makeText(StarActivity.this, "获取当前进度"+progress1, Toast.LENGTH_SHORT).show();
}
});
}
}
效果展示:
注意:这里的当前进度指的是,如果每次至少增加默认的0.5颗星,一颗星,则相当于2个进度值。
以上是关于Android 星级评分条的基本用法的主要内容,如果未能解决你的问题,请参考以下文章