当我使用Android RatingBar的自定义星星时,总是显示0.5星座以下小数点的半星

我查了一些post(例如Android的RatingBar更改星星的颜色 , 更改评级栏中评分栏dynamic创build的Android中 的星星的颜色 , 如何设置 评级栏 的星形颜色? )为了改变RatingBar中星星的颜色。 我跟着post,并能够改变自定义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

Solutions Collecting From Web of "当我使用Android RatingBar的自定义星星时,总是显示0.5星座以下小数点的半星"

你不需要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>