RatingBar изменить звездное значение рейтинг стоимость

Я использую Android SDK RatingBar и пытаюсь набрать 5 звезд, где каждая звезда стоит 2, но это не работает. Я хочу, чтобы рейтинг «8» заполнял только 4 звезды, но он заполняет все 5. Нужно ли мне использовать стороннюю библиотеку для решения этой проблемы?

 <RatingBar
      android:id="@+id/user_rating_bar"
      android:isIndicator="true"
      android:rating="8"
      android:stepSize="0.01"
      android:max="10"
      android:numStars="5"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />

person John61590    schedule 09.05.2018    source источник
comment
Думаю, я неправильно понял, потому что, если вам просто нужно двойное значение, вы можете продолжить с getNumStars () * 2, тогда вы можете сделать обратное, чтобы преобразовать значение 2 в 1 звезду. Совершенно другое дело - иметь значение 1, графически заполняющее половину звезды, в этом случае вам нужно будет перейти к пользовательскому представлению или использовать стороннюю библиотеку.   -  person MatPag    schedule 10.05.2018
comment
@MatPag Я не думаю, что проблема в двойном значении. Я бы хотел, чтобы рейтинг 1 заполнял половину первой звезды в случае максимум 10 «да».   -  person John61590    schedule 10.05.2018


Ответы (1)


Думаю, можно сделать так:

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

Если вы используете stepSize значение 0.5, с 5 звездами у вас есть 10 шагов для заполнения, таким образом, каждый 0.5 будет половиной звезды, а рейтинг 8 * stepSize заполнит только 4 звезды вместо 5.

В одной строке:

ratingBar.setRating(8 * stepSize);
person MatPag    schedule 10.05.2018
comment
не то, что я ищу. Я хочу, чтобы это было, если у меня рейтинг 8 с numStars 5, мне нужно заполнить только 4 звезды из 5. - person John61590; 18.05.2018
comment
Это именно то, что я сделал, у вас рейтинг 8, умножьте его на stepSize, и у вас есть количество закрашенных звезд, я обновил ответ, добавив метод setRating - person MatPag; 18.05.2018
comment
Хотя он работает для 8, он не работает для рейтингов, таких как 7,50, что делает рейтинг 3,75, а stepSize - 0,5. - person John61590; 18.05.2018
comment
И в этом конкретном случае с рейтингом 3,75 вы хотите заполнить 4 или 3,5 звезды? - person MatPag; 18.05.2018