更改(仅)RatingBar的颜色

时间:2016-01-04 11:08:27

标签: android android-studio ratingbar

我正在尝试将星星颜色改为黄色 我不想使用其他样式(!),只需更改RatingBar中内置星星的颜色。

我已经阅读了一些如何改变风格的教程,它们都非常相似。但由于某种原因,它对我不起作用 无论如何,因为我只是想改变颜色,而不是整个风格,我使用下面的代码:

<RatingBar
android:id="@+id/rbRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:isIndicator="true"
android:stepSize="0.5" />

布局

LayerDrawable stars = (LayerDrawable) rbBookRating.getProgressDrawable();

(似乎)我的应用程序在此行之后崩溃:

try
INSERT INTO CodeUsages 
VALUS (@code,@user,1)
catch
UPDATE CodeUsages
SET Usages = Usages + 1
WHERE UserId = @user
AND Code = @code

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我只需要使用:

DrawableCompat.setTint(rbBookRating.getProgressDrawable(), Color.YELLOW);

非常感谢...

答案 1 :(得分:1)

首先创建一个主题

 <style name="RatingBar" parent="Theme.AppCompat">
    <item name="colorControlNormal">@color/duskYellow</item>
    <item name="colorControlActivated">@color/lightGrey</item>
  </style>

然后在xml中添加

<RatingBar
        android:id="@+id/rating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:stepSize="1"
        android:theme="@style/RatingBar"/>