如何更改android 评分吧星级?
How to change android rating Bar stars?
我正在尝试通过创建新样式来更改评分栏的星星,这就是我所做的:
<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" />
这是两个图片:
但我不知道为什么我在星空下有垂直线,如下图所示:
编辑:SOLVED:i 只需将评分栏高度设置为图像高度。
谢谢
我是这样观察这个问题的。您可以在 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_empty
和 rating_star_filled
)
我正在尝试通过创建新样式来更改评分栏的星星,这就是我所做的:
<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" />
这是两个图片:
但我不知道为什么我在星空下有垂直线,如下图所示:
编辑:SOLVED:i 只需将评分栏高度设置为图像高度。
谢谢
我是这样观察这个问题的。您可以在 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_empty
和 rating_star_filled
)