Android RatingBar - 四分之一星级步长

时间:2014-02-03 12:18:57

标签: android ratingbar

我正在使用默认评级栏并要求stepSize为.25 - 根据文档,这应该是将xml属性android:stepSize设置为0.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的浮点数填充评级栏:

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

所以,问题是评级栏本身正在填充以显示3.5而不是3.25。我甚至在Log.d浮动和rating

的输出上都设置了mRating.getRating个通知

有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

啊 - 所以经过2天试图解决这个问题后,我终于问了问,会发生什么?我十分钟后想出来了......

这个问题出在我的绘画中。

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

发生的事情是我用于主要RatingBar的drawable需要使用与覆盖完全相同的那些 - 而不是我使用的那些是我之前的主题留下的......

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

答案 1 :(得分:0)

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

mRating.setStepSize((float) 0.25);

mRating.setRating(rating);

之前调用此方法

看看是否有效