Android: удаление границы в строке рейтинга

Я использую по умолчанию rating bar в Android, и появляется странная серая рамка, я хочу ее удалить.

Обратите внимание:: Многие ответы на stackoverflow предлагают использовать собственные изображения, но я не хочу. Есть ли способ удалить границу?

Мой код ::

  <RatingBar
    android:id="@+id/layout_fragment_home_recycler_view_rating_bar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numStars="5"
    android:stepSize="1.0"
    android:rating="4.0"
    style="?android:attr/ratingBarStyleSmall"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="7dp"
    android:layout_marginLeft="7dp" />

Что я получаю

введите здесь описание изображения


person Ravi    schedule 02.12.2015    source источник
comment
Можете ли вы показать нам изображение здесь   -  person Soham    schedule 02.12.2015
comment
обновите свой ответ, чтобы мы могли вам помочь   -  person Mina Fawzy    schedule 02.12.2015
comment
@Ravi О какой серой рамке ты говоришь? Граница вокруг выбранных звезд?   -  person Soham    schedule 02.12.2015
comment
@Soham Да, граница вокруг выбранных звезд   -  person Ravi    schedule 02.12.2015
comment
@ Рави, я не думаю, что это возможно. Вы должны использовать свой собственный стиль.   -  person Soham    schedule 02.12.2015


Ответы (4)


Просто удалите

style="?android:attr/ratingBarStyleSmall"

Из вашего макета

person Leo Droidcoder    schedule 29.09.2016

Создайте собственный стиль для панели рейтинга

<style name="RatingBarStyle" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/ratingbar_selector</item>
    <item name="android:minHeight">34dp</item>
    <item name="android:maxHeight">34dp</item>
</style>

ваш селектор панели рейтинга

Drawable/ratingbar_selector.xml

<item android:id="@+android:id/background" 
    android:drawable="@drawable/..." />

<item android:id="@+android:id/secondaryProgress"
    android:drawable="@drawable/..." />

<item android:id="@+android:id/progress"
    android:drawable="@drawable/..." />
person Mina Fawzy    schedule 02.12.2015
comment
Я не хочу использовать drawable, я упомянул об этом в своем вопросе. - person Ravi; 02.12.2015
comment
Любое другое решение, пожалуйста? - person Ravi; 02.12.2015
comment
затем предоставьте свой xml-код и как выглядит ваше изображение, возможно, вы пропустили некоторые атрибуты - person Mina Fawzy; 02.12.2015
comment
Отредактированный код Пожалуйста, проверьте - person Ravi; 02.12.2015

Это сработало для меня:

RatingBar coachRating = (RatingBar) findViewById(R.id.rcoach_rbr_rating);
LayerDrawable stars = (LayerDrawable) coachRating.getProgressDrawable();
stars.getDrawable(2).setColorFilter(ContextCompat.getColor(itemView.getContext(), 
                        R.color.colorAccent),PorterDuff.Mode.SRC_ATOP); // for filled stars
stars.getDrawable(1).setColorFilter(ContextCompat.getColor(itemView.getContext(), 
                        R.color.white), PorterDuff.Mode.SRC_ATOP); // for half filled stars
stars.getDrawable(0).setColorFilter(ContextCompat.getColor(itemView.getContext(), 
                        R.color.white), PorterDuff.Mode.SRC_ATOP); // for empty stars

Ссылка: Как я могу установить цвет обводки полосы рейтинга Android? (Не цвет звезд, а ГРАНИЦА)

person suku    schedule 15.03.2016

Попробуйте это, ему не нужны изображения.

public static void setRatingStyle(RatingBar ratingbar, int ratingNormalColor, int ratingProgressColor) {
    LayerDrawable stars = (LayerDrawable) ratingbar.getProgressDrawable();
    stars.getDrawable(0).setColorFilter(ratingNormalColor, PorterDuff.Mode.SRC_ATOP);
    stars.getDrawable(2).setColorFilter(ratingProgressColor, PorterDuff.Mode.SRC_ATOP);
}
person Srikanth    schedule 02.12.2015
comment
он только меняет цвет, не удаляет границу - person Ravi; 02.12.2015
comment
Я не думаю, что это возможно без рисунков - person Srikanth; 03.12.2015