我正在我的应用程序中显示评级栏,我想减少星星的尺寸。 所以这里是评级栏的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属性的错误。
答案 0 :(得分:1)
我不知道它是否会有用,但我制作了一个自定义库,允许您以编程方式(以及其他内容)更改星标:SimpleRatingBar。
它的特点:
android:layout_width
:可以将其设置为wrap_content
,match_parent
或abritary dp。在您的情况下,您只需要这样做:
ratingbar.setStarSize(20, Dimension.DP);
或者,例如,像素:
ratingbar.setStarSize(100, Dimension.PX);
您可以在jcenter
或Maven Central
中找到它。因此,在build.gradle
文件中,只需添加依赖项:
compile 'com.iarcuschin:simpleratingbar:0.1.+'