RatingBar更改星形颜色而不使用自定义图像

时间:2013-11-26 06:20:49

标签: android ratingbar

有没有办法改变星星的颜色?
我不想使用自定义图像来实现它。

3 个答案:

答案 0 :(得分:8)

您可以在create method上添加这些行。

RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar);
LayerDrawable stars = (LayerDrawable) ratingBar.getProgressDrawable();
stars.getDrawable(0).setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_ATOP);
stars.getDrawable(1).setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);

答案 1 :(得分:1)

我认为没有办法。每个Android版本都定义评级栏的默认样式,默认样式也使用图像。因此,您唯一能做的就是使用自己的图像。

答案 2 :(得分:0)

private void setRatingStarColor(Drawable drawable, @ColorInt int color) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            DrawableCompat.setTint(drawable, color);
        } else {
            drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
        }
    }