2016-08-24 3 views
-2

Мне нужно сделать точную рейтинговую панель с 5 звездами, но когда у меня есть что-то вроде 2,7 рейтинга, мне нужно иметь 2,7 звезды в белом, другие - серые. Я что-то думал с баром искателя. Я добавил 5 звезд и могу легко сделать 4 серого цвета, когда у меня есть рейтинг 1, но не уверен, как сделать их частично окрашенными.Как сделать точную рейтинговую панель в Android?

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 заполненных и т. Д., Но это будет слишком много работы.

+0

Добавьте кода, пожалуйста, чтобы люди могли понять, где его можно улучшить. –

+1

Это поможет вам: http://www.javatpoint.com/android-rating-bar-example –

+0

Я знаю, что у Android есть RatingBar, но это уродливо и не просто изменить. И это не делает то, что я хочу, у вас нет рейтинга 3.7 или 3.8. Вот почему я должен придумать что-то обычай. Я даже не могу найти хорошую библиотеку, и есть один для почти всего:/ – STARGATEBG

ответ

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" /> 
+0

Эй, спасибо ... Я понятия не имел, что есть stepSize. Теперь осталось только оставить их меньше и использовать пользовательские чертежи и цвета? – STARGATEBG

2

Чтобы уменьшить размер и изменить размер шага вы можете сделать что-то вроде этого

<RatingBar 
android:id="@+id/rating" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:numStars="5" 
android:stepSize="0.1" 
style = "?android:attr/ratingBarStyleSmall"/> 

И стиль вашего рейтинга бар вы можете увидеть эту ссылку Styling Rating Bar

Смежные вопросы