Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RatingBar设置等级不';行不通_Android_Ratingbar - Fatal编程技术网

Android RatingBar设置等级不';行不通

Android RatingBar设置等级不';行不通,android,ratingbar,Android,Ratingbar,我试图将int值显示为分级栏。最大值为5 这是我的XML文件: <RatingBar android:id="@+id/ratBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="

我试图将int值显示为分级栏。最大值为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会吸引很多星星。因为我的屏幕太小,我无法计算出有多少


有谁能告诉我出了什么问题吗?

您需要定义自己的自定义样式,以实现对
分级栏的要求。
尝试创建
样式
,并在
分级栏
视图中应用该样式

像这样:


@可抽出式/食品配料杆
48dip
48dip

查看更多详细信息。

您也可以尝试此功能

<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" />

我无法理解您的问题到底是什么,但在Android应用程序中使用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" />
并开始设置填充星星的值

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颗星。

当您在分级栏样式中设置的可绘制大小与背景、辅助进度和进度的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" />

能否显示用于设置诅咒等级的Java代码:rat.setRating(temp.getInt(“rat”);temp.getInt(“rat”)给我一个介于1和5之间的整数。试试thissetRating()不会改变星星的数量,它只会填充星星。我们可以看到设置评级栏的完整java代码吗?
private RatingBar rb;
...
this.rb = (RatingBar) findViewById(R.id.ratingBar1);
this.rb.setRating(2); , this.rb.setRating((float)2.5); etc.
<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" />