0
点赞
收藏
分享

微信扫一扫

Android 星级评分条的基本用法


> 博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
> 👉
​​​点击跳转到网站​​

一 、效果如图所示:

Android 星级评分条的基本用法_RatingBar

布局代码实现:

<?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>

 其中属性如下:

  1. numStars :设置星的个数,默认为5颗星
  2. rating:默认点亮几颗星
  3. indeterminate:默认为false,表示星数可以改变,设置为true 星数不能改变
  4. 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();
}
});
}
}

效果展示:

Android 星级评分条的基本用法_android_02

注意:这里的当前进度指的是,如果每次至少增加默认的0.5颗星,一颗星,则相当于2个进度值。

举报

相关推荐

0 条评论