1

我正在尝试为我的一个应用程序创建一个自定义 RatingBar。我遵循了本教程: http: //kozyr.zydako.net/2010/05/23/pretty-ratingbar/

问题是我的 RatingBar 始终具有相同的大小并且总是被填充。我尝试显示不同的评级(0、1、2、3、4 ...),但评级栏在所有情况下都是相同的......

我有评分栏:

<RatingBar
    android:id="@+id/ratingBar"
    style="@style/MyRatingBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="20dp"
    android:layout_marginRight="20dp"/>

我的风格:

<style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/rating_list</item>
    <item name="android:minHeight">57dip</item>
    <item name="android:maxHeight">57dip</item>
</style>

图层列表:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background"
      android:drawable="@color/white_text" />
<item android:id="@android:id/secondaryProgress"
      android:drawable="@color/white_text" />
<item android:id="@android:id/progress"
      android:drawable="@color/red_circle" />

谢谢你。

4

1 回答 1

1

在您的<RatingBar>使用中:定义条形的全尺寸使用
android:numStars多少。设置默认等级。定义 RatingBar 的步长。red_circle
android:rating
android:stepSize

<Edit>
我不相信 RatingBar 的设计目的是使用直接填充颜色作为进度可绘制对象,这就是您目前所拥有的。一种颜色没有尺寸,因此绘制 2、3 或 4 个颜色没有意义。
它设计用于处理图像文件,如默认的星形 png 文件。

更改您的图层列表,使进度可绘制对象指向位图或 9Patch,它工作正常。<RatingBar>扩展 ProgressBar,它使用 9Patchs 来绘制进度。

于 2013-12-01T23:39:14.433 回答