У меня есть RatingBar
:ProgressDrawable setColorFilter не работает
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.75"
android:isIndicator="false"
android:scaleY="0.75"
android:id="@+id/ratingBar"
android:stepSize="0.5"
android:numStars="5" />
и я использую цветовой фильтр, чтобы сделать рейтинг барные звезды розового цвета, как так:
ratingBar = (RatingBar) findViewById(R.id.ratingBar);
Drawable progressDrawable = ratingBar.getProgressDrawable();
if (progressDrawable instanceof LayerDrawable) {
LayerDrawable stars = (LayerDrawable) progressDrawable;
stars.getDrawable(2).setColorFilter(getResources().getColor(R.color.ColorSecondary), PorterDuff.Mode.SRC_ATOP);
stars.getDrawable(1).setColorFilter(getResources().getColor(R.color.ColorSecondary), PorterDuff.Mode.SRC_ATOP);
stars.getDrawable(0).setColorFilter(getResources().getColor(R.color.ColorSecondary), PorterDuff.Mode.SRC_ATOP);
}
это работает отлично подходит для всех телефонов, кроме Nexus 5 (Android версии 6.0), где 5 звезд все розовые, но заполнены по умолчанию. Даже когда я нажимаю на звезды, они не меняют цвет, все 5 остаются заполненными.
Однако, когда я делаю ratingBar.getRating()
, он возвращает оценку того, где мой пользователь коснулся панели оценки, что означает, что она работает, только цветной фильтр работает неправильно.
Если я удаляю цветной фильтр, RatingBar
отлично работает с цветами по умолчанию.
Не может найти решение этого в любом месте. Заранее спасибо.
It не совсем то, что я искал, но поскольку это телефонная вещь, я не знаю, как ее решить сам. Я переключился на XML. Благодаря! :) – Mallika