无法更改评级栏颜色

时间:2016-03-19 05:08:14

标签: android ratingbar

我正在使用以下代码进行评分栏。

<RatingBar
            android:id="@+id/ratingBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:stepSize="1.0"
            android:background="@color/yellow"/>

问题是我无法改变评级栏中的星星颜色。即使我尝试设置背景。如何更改星的颜色?

3 个答案:

答案 0 :(得分:4)

试试吧......

android:progressTint="@color/color"

你可以使用它......

使用 android:theme属性:

<强> styles.xml

<style name="Theme.Rating" parent="Theme.AppCompat.Light">
<item name="colorAccent">@color/rating</item>
</style>

<强> layout.xml

<android.support.v7.widget.AppCompatRatingBar
android:theme="@style/Theme.Rating"
android:numStars="5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

答案 1 :(得分:0)

我建议创建三星图像yello_full.png,yellow_half.png和yellow_empty.png。现在把这些图像放在drawable文件夹中。

在drawable中创建一个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/yellow_empty" />

<item 
android:id="@android:id/secondaryProgress" 
android:drawable="@drawable/yellow_half" />

<item 
android:id="@android:id/progress"    
android:drawable="@drawable/yello_full" />
</layer-list>

现在在您的评分栏中添加此

  <RatingBar 
android:progressDrawable="@drawable/ratingbar_yellow"/>

在这里你去..享受编码

答案 2 :(得分:0)

您可以通过设置滤色器来更改它,而不是创建可绘制的。 实施例

ratingWidget.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_ATOP);

此处颜色是您要设置为窗口小部件的颜色。