我查了很多帖子(例如Android RatingBar更改星星颜色, 更改评级栏中星星的颜色,其中评级栏是在android中动态创建的, 如何设置评分栏的星星颜色?)以更改评级栏中星星的颜色。我关注了这些帖子,并且能够更改自定义评级栏的星星,但在执行此操作时,我无法再将值设置为低于一半的小数(例如 0.2)。它总是显示为一半(例如 0.5)。当我将值设置为一半以上(例如 0.7)时,它会完美显示。
以下是我用于自定义评级栏的示例图像(即 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
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,如下所示。有谁知道为什么会发生这种情况或者我做错了什么?任何帮助将不胜感激。谢谢
你不需要 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)