gpt4 book ai didi

Android评分栏设置星级维度

转载 作者:行者123 更新时间:2023-11-30 01:51:14 25 4
gpt4 key购买 nike

我在我的应用程序中显示评级栏,我想在其中缩小星星的尺寸。所以这是评级栏的 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 中的 style 属性,它将设置为精确值为星号,但尺寸将重置为默认值。如果我将最小/最大高度添加到星号,图像将被裁剪。这是同样的问题:- How to set the custom size of the stars in RatingBar尝试过:style="?android:attr/ratingBarStyleIndicator" 仍然是同样的问题。我没有理解 style 属性有什么问题。

最佳答案

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

它的特点:

  • 完全可用的 android:layout_width:它可以设置为 wrap_contentmatch_parent 或任意 dp。
  • 任意数量的星星。
  • 任意步长。
  • 星星的大小可以精确控制或通过设置最大大小来控制。
  • 正常状态下的可自定义颜色(边框、填充和星星背景以及评分栏)。
  • 按下状态下的可自定义颜色(边框、填充和星星背景以及评分栏)。
  • 星星之间可自定义的大小分隔。
  • 可定制的星星边框宽度。
  • 可自定义的星角半径。
  • 允许设置 OnRatingBarChangeListener
  • 可以将星星填充设置为从左到右或从右到左(RTL 语言支持)。
  • AnimationBuilder 集成在 View 中以通过动画以编程方式设置评分。

Here is a preview of it .

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

ratingbar.setStarSize(20, Dimension.DP);

或者,例如,以像素为单位:

ratingbar.setStarSize(100, Dimension.PX);

您可以在 jcenterMaven Central 中找到它。所以在你的 build.gradle 文件中添加你的依赖项:

编译 'com.iarcuschin:simpleratingbar:0.1.+'

关于Android评分栏设置星级维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33016812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com