Android评级栏设置星级维度

时间:2015-10-08 13:08:22

标签: android ratingbar

我正在我的应用程序中显示评级栏,我想减少星星的尺寸。 所以这里是评级栏的xml

       <RatingBar
                android:id="@+id/ratingBar"
                style="?android:attr/ratingBarStyleSmall"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="false"
                android:max="5"
                android:stepSize="0.25"
                android:numStars="0"
                android:focusable="false"
                android:layout_gravity="center_horizontal"
                android:focusableInTouchMode="false"
                android:isIndicator="true"/>

我正在设置这样的颜色和设置等级

 private RatingBar ratingBar;
 Drawable ratingBarColor = ratingBar.getProgressDrawable();
ratingBar = (RatingBar) view.findViewById(R.id.ratingBar);
 Drawable ratingBarColor = ratingBar.getProgressDrawable();
ratingBar.setRating((float) (value));
 DrawableCompat.setTint(ratingBarColor, ContextCompat.getColor(getActivity(), R.color.red));

但问题是无论任何值,颜色和小数填充都不起作用。我使用样式来减少星形尺寸。范围是如果我删除xml中的样式属性它将设置精确值为星号但尺寸将重置为默认值。如果我添加最小/最大高度为星形图像将被裁剪。 这是同样的问题: - How to set the custom size of the stars in RatingBar 试过:style="?android:attr/ratingBarStyleIndicator"仍然是同一个问题。 我没有得到style属性的错误。

1 个答案:

答案 0 :(得分:1)

我不知道它是否会有用,但我制作了一个自定义库,允许您以编程方式(以及其他内容)更改星标:SimpleRatingBar

它的特点:

  • 完全正常工作android:layout_width:可以将其设置为wrap_contentmatch_parent或abritary dp。
  • 任意数量的明星。
  • 任意步长。
  • 可以精确控制星星的大小,也可以通过设置最大大小来控制。
  • 正常状态下的可自定义颜色(星形和额定条的边框,填充和背景)。
  • 按下状态下的可自定义颜色(星形和额定条的边框,填充和背景)。
  • 明星之间可定制的尺寸分离。
  • 可自定义的星星边框宽度。
  • 可自定义的星角半径。
  • 允许设置OnRatingBarChangeListener
  • 星星填充可以设置为从左到右或从右到左(RTL语言支持)。
  • 在视图中集成了AnimationBuilder,以动画方式设置评级。

Here is a preview of it

在您的情况下,您只需要这样做:

ratingbar.setStarSize(20, Dimension.DP);

或者,例如,像素:

ratingbar.setStarSize(100, Dimension.PX);

您可以在jcenterMaven Central中找到它。因此,在build.gradle文件中,只需添加依赖项:

compile 'com.iarcuschin:simpleratingbar:0.1.+'