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这里什么重要?好了,安卓:布局和高度才是最重要的!为什么这被接受,甚至是一个答案?主题是评级条明星不会改变,而不是如何固定垂直线。为什么这被接受,甚至是一个答案?主题是评级条星星不会改变,而不是如何固定垂直线。