RatingBar如何设置评分最小值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RatingBar如何设置评分最小值?相关的知识,希望对你有一定的参考价值。
如题,默认的ratingbar是可以选择0颗星的,比如我想设定为只能选择1-5颗星,不允许选择0,即设定可选的最小值为1,这个该怎么实现啊。请前辈指教,谢啦
参考技术A public void setRating (float rating);//设置分数(星型的数量)//参数 rating 设置的分数 参考技术B android:rating //默认的评分,必须是浮点类型,像“1.2”。Android中星星评分控件SimpleRatingBar的使用
android自带的RatingBar控件在设置大小上是很难控制的【RatingBar控件的介绍】 下面的话就来说说如何使用SimpleRatingBar开源库去实现星级效果【GitHub查看】
一.SimpleRatingBar的属性和方法
描述 | 属性/方法 |
---|---|
设置显示总星数 | app:srb_numberOfStars/setNumberOfStars(int) |
设置选中星数 | app:srb_rating / 设置评级setRating(float) |
设置步长 | app:srb_stepSize/ setStepSize(float) |
设置星星大小 | app:srb_starSize/ setStarSize(float) |
设置最大星号 | app:srb_maxStarSize/ setMaxStarSize(float) |
设置边框宽度 | app:srb_starsSeparation/ setStarsSeparation(float) |
设置边框宽度 | app:srb_starBorderWidth/ setStarBorderWidth(float) |
设置星角半径 | app:srb_starCornerRadius/ setStarCornerRadius(float) |
设置正常状态下的星形边框颜色 | app:srb_borderColor/ setBorderColor(@ColorInt int) |
用正常状态设置星星填充颜色用 | app:srb_fillColor/ setFillColor(@ColorInt int) |
用正常状态设置星星背景颜色 | app:srb_starBackgroundColor/setStarBackgroundColor(@ColorInt int) |
设置正常状态下额定条的背景颜色 | app:srb_backgroundColor/ setBackgroundColor(@ColorInt int) |
在按下状态设置星级边框颜色 | app:srb_pressedBorderColor/setPressedBorderColor(@ColorInt int) |
设置星形填充颜色处于按下状态 | app:srb_pressedFillColor/setPressedFillColor(@ColorInt int) |
在压制状态下设置星星背景颜色 | app:srb_pressedStarBackgroundColor/setPressedStarBackgroundColor(@ColorInt int) |
用压力状态设置额定条的背景颜色 | app:srb_pressedBackgroundColor/setPressedBackgroundColor(@ColorInt int) |
启用/禁用用户的交互 | app:srb_isIndicator/setIsIndicator(boolean) |
启用/禁用星形边框 | app:srb_drawBorderEnabled/ setDrawBorderEnabled(boolean) |
设置填充方向(左或右) | app:srb_gravity/ setGravity(Gravity) |
得到已选中星星的个数 | getRating() |
得到一共有多少颗星星 | getNumberOfStars() |
二.使用步骤
1.添加依赖
implementation 'com.iarcuschin:simpleratingbar:0.1.5'
2.示例
<RelativeLayout
android:id="@+id/star_describe"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/score_title1"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="描述相符"
android:textSize="13sp"
android:textColor="@color/theme_defaultText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/describe_tip"
android:textSize="12sp"
android:textColor="@color/theme_textColor"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/score_title1"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<com.iarcuschin.simpleratingbar.SimpleRatingBar
android:id="@+id/describe_score"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srb_starSize="28dp" //星星大小
app:srb_numberOfStars="5" //显示星星个数
app:srb_stepSize="1" //步长
app:srb_drawBorderEnabled="false"
app:srb_starBackgroundColor="@color/disabled_textColor"
app:srb_fillColor="@color/goCart_btn" />
</RelativeLayout>
SimpleRatingBar自带点击星星变亮和滑动星星变亮的事件,不需要我们另外写代码,如果要监听选中星星个数的改变,可以添加setOnRatingBarChangeListener监听,如下:
SimpleRatingBar describe_score = findViewById(R.id.describe_score);
describe_score.setOnRatingBarChangeListener(new SimpleRatingBar.OnRatingBarChangeListener()
@Override
public void onRatingChanged(SimpleRatingBar simpleRatingBar, float rating, boolean fromUser)
//这里是防止星星的个数变成零个,最少为一个
if(rating==0)
describe_score.setRating(1);
rating=1;
score1 = String.valueOf(rating);
scoreState1 = fun_getScoreState(score1);
describe_tip.setText(scoreState1);
);
以上是关于RatingBar如何设置评分最小值?的主要内容,如果未能解决你的问题,请参考以下文章
Android中星星评分控件SimpleRatingBar的使用