Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 分级栏在不使用自定义图像的情况下更改星形颜色_Android_Ratingbar - Fatal编程技术网

Android 分级栏在不使用自定义图像的情况下更改星形颜色

Android 分级栏在不使用自定义图像的情况下更改星形颜色,android,ratingbar,Android,Ratingbar,有没有办法改变星星的颜色? 我不想使用自定义图像来实现它。我认为没有办法。每个Android版本都定义了评级栏的默认样式,默认样式也使用图像。所以你唯一能做的就是使用你自己的图像 您可以将这些行添加到on create方法中 RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar); LayerDrawable stars = (LayerDrawable) ratingBar.getProgressDrawable(); st

有没有办法改变星星的颜色?

我不想使用自定义图像来实现它。

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

您可以将这些行添加到on create方法中

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);

你能把正确的号码标出来吗
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);
        }
    }