<
RatingBar android:id="@+id/rb_starbar" style="@style/joblist_item_ratingbar_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="5" android:rating="3.5" android:stepSize="0.5" />

 

RatingBar一般都是显示整数个数的,这次因为要显示半个的Star,就把之前的样式改了一改,结果,出现了问题:

无论怎么设置setpSize的值,每次显示的Star都是整个的。。

<item
        android:id="@+android:id/background"
        android:drawable="@drawable/ic_gray">
    </item>
    <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/ic_orange">
    </item>
    <item
        android:id="@+android:id/progress"
        android:drawable="@drawable/ic_orange">
    </item>

ic_orange:

Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题

ic_gray:

Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题

ic_setting:

Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题

结果是这样的:Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题

为什么没有显示3.5个Star(=@__@=)?看了下google的文档解释:

android:secondaryProgress Defines the secondary progress value, between 0 and max.

接下来替换secondaryProgress的drawable,看下结果:

  <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/ic_setting">
    </item>

结果如下:

Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题

此处的secondaryProgress会向上取整(Math.cell())的显示图像。

然后一开始的问题也就迎刃而解了。

下面的secondaryProgress部分和第一个secondaryProgress,已经调换的drawable。

 <item
        android:id="@+android:id/background"
        android:drawable="@drawable/ic_gray">
    </item>
    <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/ic_gray">
    </item>
    <item
        android:id="@+android:id/progress"
        android:drawable="@drawable/ic_orang">
    </item>

相关文章:

  • 2021-11-11
  • 2021-05-29
  • 2021-09-25
  • 2021-07-17
  • 2022-12-23
  • 2022-01-14
  • 2022-02-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-04
  • 2022-12-23
  • 2021-11-22
  • 2022-12-23
相关资源
相似解决方案