【问题标题】:How to change android rating Bar stars?如何更改android评级栏星?
【发布时间】:2016-02-17 07:20:25
【问题描述】:

我正在尝试通过创建新样式来更改评分栏的星星,这就是我所做的:

<style name="RatingBarSmall" parent="android:Widget.DeviceDefault.Light.RatingBar.Indicator">
        <item name="android:progressDrawable">@drawable/rating_bar</item>
        <item name="android:minHeight">36dp</item>
        <item name="android:maxHeight">36dp</item>
    </style>

drawable/rating_bar:

<?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/rating_star_empty" />
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/rating_star_empty" />
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/rating_star_filled" />
</layer-list>

评分栏 xml 视图:

<RatingBar
                    android:id="@+id/ratingBar"
                    style="@style/RatingBarSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="0"
                    android:isIndicator="true"
                    android:rating="5" />

这是两张图片:

但我不知道为什么我在星星下有垂直线,如下图所示:

编辑:已解决:我只是将评分栏高度设置为图像高度。

谢谢

【问题讨论】:

  • 您可能想要使用 wrap_content 而不是 minHeight 和 maxheight
  • 您可以将您的代码与this 进行比较。可能对你有帮助。
  • 这可能是评分栏中的错误。我多次遇到同样的问题,但没有想要的结果。
  • 为此使用 FrameLayout;我以前也有同样的问题!如果您有更多帮助,请告诉我

标签: android android-layout layout android-bitmap ratingbar


【解决方案1】:

我以这种方式观察到这个问题。您可以在res/values/dimens.xml 中为每个屏幕(mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi)创建任何值,例如:

<dimen name="rating_min_height">36dp</dimen>
<dimen name="rating_min_width">36dp</dimen>

然后使用这个:

<style name="RatingBarSmall" parent="android:Widget.DeviceDefault.Light.RatingBar.Indicator">
    <item name="android:progressDrawable">@drawable/rating_bar</item>
    <item name="android:minHeight">@dimen/rating_min_height</item>
    <item name="android:maxHeight">@dimen/rating_min_width</item>
</style>

或者您可以将该逻辑应用于您的可绘制对象(rating_star_emptyrating_star_filled

【讨论】:

  • &lt;dimen name="raiting_min_weight"&gt;36dp&lt;/dimen&gt; 我猜你的意思是&lt;dimen name="raiting_min_width"&gt;36dp&lt;/dimen&gt;
猜你喜欢
  • 1970-01-01
  • 2014-04-27
  • 2021-12-16
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多