android - 如何更改 android 评级栏星级?

标签 android android-layout layout android-bitmap ratingbar

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

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

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

这是牵引图像:

rating_star_empty rating_star_filled

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

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

谢谢

最佳答案

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

关于android - 如何更改 android 评级栏星级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33731219/

相关文章:

c++ - QGridLayout 与 QHBoxLayout & QVBoxLayout

android - 如何使我的布局能够向下滚动?

java - Java Set 接受重复的 String[] 吗?

android - 更新图像的位置

java - 为什么 editText 中的文本没有水平居中?

java - 当我在其中添加文本时,如何使 android View 动态增长?

html - 使用固定布局表格填充自动宽度表格单元格

android - 可绘制图像给出 'No resource found..' 但它在文件夹中

java - 在 android 中与计时器作斗争

android - 渲染问题 渲染期间引发异常 : color and position arrays must be of equal length