3

我正在尝试将 int 值显示为 ratingBar。最大值为 5。

这是我的 XML 文件:

<RatingBar
            android:id="@+id/ratBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:isIndicator="false"
            android:numStars="5" />

但是如果我用 setRating() 设置评分,android 会吸引很多星星。我不知道有多少,因为我的屏幕太小了。

谁能告诉我怎么了?

4

4 回答 4

3

我无法理解您的问题到底是什么,但无论如何在 Android 应用程序中使用 RatingBar 还是很容易的。您需要在适当的位置定义您的 RatingBar;

<RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="true"
        android:max="5"
        android:numStars="3" />

在您的活动中获得对它的引用;

private RatingBar rb;
...
this.rb = (RatingBar) findViewById(R.id.ratingBar1);

并开始设置值以填充星星;

this.rb.setRating(2); , this.rb.setRating((float)2.5); etc.

如果您的屏幕太小而无法显示五颗星,您可以设置星星的数量,就像我在上面所做的那样。你有几个选择;

1)您可以将两个评分栏放在另一个下面,一个是 3 星,另一个是 2 星。当您的数字超过 3 时,您可以继续填写底部评分栏的 2 星。

2)如果可能,您可以设置浮点值而不是整数。这样您就可以设置 1、1.5、2、2.5、3、3.5 等,并在一点代数之后为您的区间 1-5 填充 3 颗星。

于 2013-01-04T08:03:15.063 回答
2

您需要定义自己的自定义样式来实现您想要的RatingBar. 尝试在您的视图中创建styles并应用该样式。RatingBar

像这样:

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/food_ratingbar_full</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:maxHeight">48dip</item>
  </style> 
 </resources> 
 <RatingBar   android:id="@+id/my_rating_bar"
        ...
        style="@style/foodRatingBar" />

这里查看更多详细信息。

于 2012-12-29T08:30:23.470 回答
2

你也可以试试这个

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/artist"
    android:layout_below="@+id/artist"
    android:numStars="5"
    android:rating="2.0"
    android:stepSize="1.0" />
于 2013-01-02T10:37:16.450 回答
0

当您为评分栏设置的样式中的可绘制对象具有不同的背景、次要进度和进度的 png 大小时,就会发生这种情况。

将其更改为类似

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"
        android:drawable="@android:color/transparent" />
    <item android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/star_half" />
    <item android:id="@android:id/progress"
        android:drawable="@drawable/star_full" />
于 2016-04-29T14:33:22.613 回答