[英]Android rating bar set star dimension
我在我想缩小星星尺寸的应用程序中显示评分栏。 所以这是评级栏的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中删除样式属性,它将设置准确的值作为星形,但是尺寸将重置为默认值。如果我将最小/最大高度加到星形,图像将被裁剪。 这是相同的问题:- 如何在RatingBar中设置星星的自定义大小,尝试过: style="?android:attr/ratingBarStyleIndicator"
仍然是同一问题。 我没有得到样式属性有什么问题。
我不知道它是否会有用,但我创建了一个自定义库,该库可让您以编程方式(以及其他方法)更改星形尺寸: SimpleRatingBar 。
它具有以下特点:
android:layout_width
:可以将其设置为wrap_content
, match_parent
或非婚生dp。 这是它的预览 。
就您而言,您只需要执行以下操作:
ratingbar.setStarSize(20, Dimension.DP);
或以像素为单位:
ratingbar.setStarSize(100, Dimension.PX);
您可以在jcenter
或Maven Central
找到它。 因此,在您的build.gradle
文件中,只需添加您的依赖项即可:
compile 'com.iarcuschin:simpleratingbar:0.1.+'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.