Android 评级条明星不会改变

Android 评级条明星不会改变,android,android-layout,ratingbar,Android,Android Layout,Ratingbar,在我的代码中,我想设置我的自定义星号,但它不能正常工作 <RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"

在我的代码中,我想设置我的自定义星号,但它不能正常工作

 <RatingBar
                android:id="@+id/ratingBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:numStars="5"
                android:stepSize="1"
                android:rating="1"
                android:progressDrawable="@drawable/rating_bar_color"/>
rating_bar_color.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/starw30" />
    <item android:id="@android:id/progress" android:drawable="@drawable/star" />
</layer-list>
我使用这个代码和我得到的结果

线路是从哪里来的。星星的大小与默认的星星大小相同

试试android:layout\u height=20sp或任何你正在使用的星星大小

还有一件事,您需要为自定义分级栏定义样式:

例如:my_ratingbar.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:progressDrawable">@drawable/rating_bar_color</item>
        <item name="android:minHeight">36dip</item> 
        <item name="android:maxHeight">36dip</item>
    </style>
</resources>
<!--Where 36dp is the size of image and include progress drawable here.
使用以下命令将此样式应用于分级栏:

<RatingBar   
  ...
   style="@style/my_ratingbar" />
试一下android:layout_height=20sp或任何你正在使用的星星大小

还有一件事,您需要为自定义分级栏定义样式:

例如:my_ratingbar.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:progressDrawable">@drawable/rating_bar_color</item>
        <item name="android:minHeight">36dip</item> 
        <item name="android:maxHeight">36dip</item>
    </style>
</resources>
<!--Where 36dp is the size of image and include progress drawable here.
使用以下命令将此样式应用于分级栏:

<RatingBar   
  ...
   style="@style/my_ratingbar" />

之所以出现这些行,是因为您正试图使用android:layout\u height=wrap\u content包装评级栏图像。因此,作为一种解决方案,您必须根据图像的大小提供分级栏的高度

如果分级栏图像的大小为20,请尝试添加

安卓:布局高度=20dip


这对你有用

之所以出现这些行,是因为您试图使用android:layout\u height=wrap\u content来包装评级栏图像。因此,作为一种解决方案,您必须根据图像的大小提供分级栏的高度

如果分级栏图像的大小为20,请尝试添加

安卓:布局高度=20dip


这对你有用

此问题是由于图像缩放不正确造成的。解决这个问题的办法是遵循这样的比例

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi


0.75 | 1 | 1.33 | 1.5 | 2 | 3 | 4

此问题是由于图像缩放不正确造成的。解决这个问题的办法是遵循这样的比例

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi


0.75 | 1 | 1.33 | 1.5 | 2 | 3 | 4

当星形资产的大小与评级栏的大小不同,且星形资产本身与底部边框之间没有透明空间时,会发生泄漏星形。 出于某种原因,android试图通过复制资产的最低部分来放大图像,这样您就可以像我在我的一个项目中所做的那样,在资产的底部添加一些透明的空间


tl;dr:在星型资产下添加一些透明空间

当星型资产的大小与评级栏的大小不同,并且星型资产本身和底部边框之间没有透明空间时,会发生泄漏星型。 出于某种原因,android试图通过复制资产的最低部分来放大图像,这样您就可以像我在我的一个项目中所做的那样,在资产的底部添加一些透明的空间


tl;dr:在star资产下添加一些透明空间

你确定它的android:layout\u width这里什么重要?好了,安卓:布局和高度才是最重要的!你确定它的android:layout\u width这里什么重要?好了,安卓:布局和高度才是最重要的!为什么这被接受,甚至是一个答案?主题是评级条明星不会改变,而不是如何固定垂直线。为什么这被接受,甚至是一个答案?主题是评级条星星不会改变,而不是如何固定垂直线。