Android:在评级栏中删除边框

时间:2015-12-02 12:01:27

标签: java android xml ratingbar

我在android中使用默认rating bar并且显示了一个奇怪的灰色边框,我想删除它们。

请注意:: 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" />

我得到的是什么

enter image description here

4 个答案:

答案 0 :(得分:1)

只需删除

style="?android:attr/ratingBarStyleSmall"

从你的布局

答案 1 :(得分:0)

为评级栏创建自定义样式

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

你的评级栏选择器

抽拉/ 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/..." />

答案 2 :(得分:0)

这对我有用: 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); //对于满满的星星 stars.getDrawable(1).setColorFilter(ContextCompat.getColor(itemView.getContext(),                         R.color.white),PorterDuff.Mode.SRC_ATOP); //对于半满的星星 stars.getDrawable(0).setColorFilter(ContextCompat.getColor(itemView.getContext(),                         R.color.white),PorterDuff.Mode.SRC_ATOP); //对于空星 参考:如何设置android评级栏的笔画颜色? (不是星星的颜色,而是BORDER)

答案 3 :(得分:-1)

试试这个,它不需要图像。

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