Когда я использую пользовательские звезды для Android RatingBar, всегда показывать половину звезды для десятичных значений ниже 0,5

Я просмотрел несколько сообщений (например, Android RatingBar изменяет цвета звездочек, Изменить цвет звезд в строке рейтинга, где панель рейтинга создается динамически в Android, Как установить цвет звездочек на полосе рейтинга?), чтобы изменить цвет звездочек в RatingBar. Я следил за сообщениями и смог изменить звезды для пользовательского RatingBar, но при этом я больше не мог установить десятичное значение меньше половины (например, 0,2). Он всегда будет отображаться как половина (например, 0,5). Когда я устанавливаю значение выше половины (например, 0,7), оно отображается отлично.

Ниже приведены примеры изображений, которые я использую для своего пользовательского RatingBar (например, ratingbar_empty.png, ratingbar_half.png, ratingbar_full.png).

Пустая звездаПолузвезда Полная звезда

Ниже приведен XML-файл для использования пользовательских звезд (ratingbar_custom.xml).

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/ratingbar_empty" />
    <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/ratingbar_half" />
    <item android:id="@android:id/progress" android:drawable="@drawable/ratingbar_full" />
</layer-list>'

Ниже показано, как я использую свой собственный RatingBar в своем макете.

<RatingBar 
    android:id="@+id/rb_rating"
    android:numStars="7"
    android:rating="0"      
    android:stepSize="0.01"                     
    android:isIndicator="true"                                                            
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:progressDrawable="@drawable/ratingbar_custom" />

Когда я затем собираю все это вместе и устанавливаю значение RatingBar равным 0,2, он визуально устанавливает RatingBar равным 0,5, как показано ниже. У кого-нибудь есть идеи, почему это происходит или что я делаю неправильно? Любая помощь будет принята с благодарностью. Спасибо

Установка пользовательской RatingBar на 0,2, но визуально отображается 0,5


person Graham Baitson    schedule 14.01.2014    source источник
comment
Пробовали ли вы использовать больший размер шага, например 0.1?   -  person user    schedule 14.01.2014
comment
Привет @Luksprog, спасибо за ваш комментарий. Да, я тоже так пробовал, все так же. Видите, довольно странно, что это происходит только тогда, когда я устанавливаю значение ниже половины, когда я устанавливаю значение выше половины, все работает нормально?   -  person Graham Baitson    schedule 14.01.2014
comment
Следуйте этому, чтобы установить пользовательский цвет для панели рейтинга по умолчанию stackoverflow.com/questions/2446270/   -  person Arshad    schedule 09.12.2015


Ответы (1)


Вам не нужен star_half.

Попробуйте сделать так:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/star_none" />
    <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/star_none" />
    <item android:id="@android:id/progress" android:drawable="@drawable/star_fill" />
</layer-list>
person ruslanys    schedule 27.05.2014
comment
Спасибо за комментарий. В конце концов я нашел это, я думал, что обновил это. Но большое спасибо, я сделал, как вы сказали :-) - person Graham Baitson; 27.05.2014