3

我正在使用默认评分栏并需要 0.25 的 stepSize - 根据文档,这应该很简单,只需将 xml 属性设置android:stepSize0.25.

目前,这已经到位,总 xml 为:

<RatingBar 
        android:id="@+id/ratingbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/RatingBarBig"
        android:layout_below="@+id/score"
        android:layout_centerHorizontal="true"
        android:gravity="center_horizontal"
        android:paddingBottom="5dp"
        android:layout_centerVertical="true"
        android:isIndicator="true"
        android:stepSize="0.25"
        android:numStars="5"
        android:rating="0"/>

3.25我正在使用以下代码以编程方式填充 ratingbar :

float rating = 3.25f;
RatingBar mRating = (RatingBar) findViewById(R.id.ratingbar);
mRating.setRating(rating);

所以,问题是评级栏本身被填充以显示3.5而不是3.25. 我什至在浮点数和输出Log.d上都设置了通知ratingmRating.getRating

有人有什么想法吗?

4

2 回答 2

1

啊 - 所以经过 2 天的尝试,我终于问了 SO,会发生什么?十分钟后我明白了...

问题出在我的drawable中。

我忘了提到的是,我正在使用第二个 RatingBar,覆盖在第一个的顶部(只有空的透明星),因为我在主要的上使用了滤色器来改变颜色基于评级的星星(红色,黄色,绿色)。

发生的事情是,我用于主要 RatingBar 的可绘制对象需要使用与叠加层完全相同的可绘制对象 - 而不是我使用的那些是我以前的主题遗留下来的......

因此,这一切都归结为使用的图像,而不是代码。一旦我被允许,我会接受这个作为正确答案。

于 2014-02-03T12:33:35.223 回答
0

尝试以编程方式设置步长:

mRating.setStepSize((float) 0.25);

之前调用这个mRating.setRating(rating);

看看这是否有效

于 2014-02-03T12:25:19.767 回答