Android的RatingBar存在问题

时间:2011-08-10 15:48:01

标签: android rating

我正在尝试自定义android的RatingBar。

我找到了tutorial来做这件事,但我遇到了问题。

我将评级栏numStars的属性设置为5。

我得到的是,评级栏的每个“明星”都代表我的三个。

我在本教程的评论中读到,有人遇到了类似的问题,但是没有解决这个问题的方法。

有人可以在Android 2.2上试用这个教程吗?或者推荐另一个教程?

提前谢谢

UPD:

这是我的一些代码:

RES /抽拉/ star_selector_full_filled.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
          android:state_window_focused="true"
          android:drawable="@drawable/star_highlighted" />

    <item android:state_focused="true"
          android:state_window_focused="true"
          android:drawable="@drawable/star_highlighted" />

    <item android:state_selected="true"
          android:state_window_focused="true"
          android:drawable="@drawable/star_highlighted" />

    <item android:drawable="@drawable/star_highlighted" />

</selector>

RES /抽拉/ star_selector_empty.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
          android:state_window_focused="true"
          android:drawable="@drawable/star_white" />

    <item android:state_focused="true"
          android:state_window_focused="true"
          android:drawable="@drawable/star_white" />

    <item android:state_selected="true"
          android:state_window_focused="true"
          android:drawable="@drawable/star_white" />

    <item android:drawable="@drawable/star_white" />

</selector>

RES /抽拉/ star_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+android:id/background"
          android:drawable="@drawable/star_selector_empty" />
    <item android:id="@+android:id/secondaryProgress"
          android:drawable="@drawable/star_selector_empty" />
    <item android:id="@+android:id/progress"
          android:drawable="@drawable/star_selector_full_filled" />
</layer-list>

RES /值/ styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="starRatingBar" parent="android:style/Widget.RatingBar">
        <item name="android:progressDrawable">@drawable/star_selector</item>
        <item name="android:minHeight">25dip</item>
        <item name="android:maxHeight">25dip</item>
    </style>    
</resources>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题......它与您部署的最小版本和屏幕尺寸有关。

我手动设置了android清单中支持的屏幕尺寸:

<supports-screens android:smallScreens="true" 
      android:normalScreens="true" 
      android:largeScreens="true" 
      android:anyDensity="true" />

希望它有所帮助。

编辑:

我实际上回答了同样的问题here.

您需要做的就是将布局宽度设置为wrap_content