我正在尝试更改 RatingBar
星星的颜色,但在迁移到 Android API 23 后,我的以下代码不起作用并给我一个异常(exception)。
LayerDrawable ratingBarStars = (LayerDrawable) holder.ratingBar.getProgressDrawable();
ratingBarStars.getDrawable(0).setColorFilter(mContext.getResources()
.getColor(R.color.accent), PorterDuff.Mode.SRC_ATOP);
ratingBarStars.getDrawable(1).setColorFilter(mContext.getResources()
.getColor(R.color.accent), PorterDuff.Mode.SRC_ATOP);
ratingBarStars.getDrawable(2).setColorFilter(mContext.getResources()
.getColor(R.color.accent), PorterDuff.Mode.SRC_ATOP);
错误是:
java.lang.ClassCastException: android.support.v4.graphics.drawable.DrawableWrapperHoneycomb cannot be cast to android.graphics.drawable.LayerDrawable
最佳答案
DrawableCompat.setTint(ratingBar.getProgressDrawable(),color);
评论区的 Selvin 是正确答案。
关于android - ClassCastException:android.support.v4.graphics.drawable.DrawableWrapperHoneycomb 无法转换为 android.graphics.drawable.LayerDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438681/