我试图通过创造新的风格来改变我的评级栏的星级,我所做的是:

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

可拉伸/额定值:
<?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" />

下面是两张图片:
android - 如何更改Android评级栏明星?-LMLPHP
android - 如何更改Android评级栏明星?-LMLPHP
但是我不知道为什么我在星星下面有垂直线,就像你在下面的图片中看到的那样:
android - 如何更改Android评级栏明星?-LMLPHP
编辑:已解决:我只是将分级栏高度设置为图像高度。
谢谢

最佳答案

我是这样看待这个问题的。您可以在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>

或者你可以将这个逻辑应用到你的drawable(rating_star_emptyrating_star_filled

07-27 16:28