如何在Android中制作精确的评级栏?

时间:2016-08-24 09:18:36

标签: android

我需要制作5颗星的精确评级栏,但是当我有2.7级评级时,我需要有2.7颗白色,其他颜色为灰色。我正在寻找与寻求者酒吧有关的东西。我添加了5颗星,当我评级为1时可以轻松制作4颗灰色,但不知道如何使它们部分着色。

enter image description here

我现在有这样的事情:

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
            setStars(i);
        }

 private void setStars(int stars){
    switch (stars){
        case 0:
            star1.setVisibility(GONE);
            star2.setVisibility(GONE);
            star3.setVisibility(GONE);
            star4.setVisibility(GONE);
            star5.setVisibility(GONE);
            break;
case 2:
            star1.setVisibility(VISIBLE);
            star2.setVisibility(GONE);
            star3.setVisibility(GONE);
            star4.setVisibility(GONE);
            star5.setVisibility(GONE);
            break;

等等,但我需要它准确。我知道我可能会为这个星的10个状态进行1/10,2/10填充等等,但这样做太多了。

2 个答案:

答案 0 :(得分:2)

要缩小尺寸并更改stepSize,您可以执行以下操作

<body onload="myFunction()">

要设置评级栏的样式,您可以看到此链接Styling Rating Bar

答案 1 :(得分:1)

试试这个:

<RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:stepSize="0.1"
        android:rating="2.7" />