如何创建自定义评级栏

时间:2013-12-01 23:27:08

标签: android android-custom-view ratingbar

我正在尝试为我的某个应用创建自定义RatingBar。我已经按照本教程:http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/

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

我有ratingBar:

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

谢谢。

1 个答案:

答案 0 :(得分:1)

<RatingBar>使用中:
android:numStars定义用于整个标尺的red_circle个{。}} android:rating设置默认评级 android:stepSize来定义RatingBar的步长。

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

更改图层列表,以便进度可绘制指向Bitmap或9Patch,并且它可以正常工作。 <RatingBar>扩展了ProgressBar,它使用9Patchs作为可绘制的进度。