我正在尝试将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会吸引很多明星。我无法弄清楚有多少因为我的屏幕太小了。
有人能告诉我什么是错的吗?
答案 0 :(得分: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.5个,2.5个,3个,3.5个等等,你可以在一个小代数之后为你的间隔1-5填充3颗星。
答案 1 :(得分: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" />
查看here了解详情。
答案 2 :(得分: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" />
答案 3 :(得分:0)
当您在评级栏的样式中设置的drawable对于背景,次要进度和进度具有不同的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" />