Невозможно изменить размер пользовательского RatingBar
Я пытаюсь сделать собственный RatingBar для моего приложения для Android, в котором я могу изменить размер и цвет по умолчанию для RatingBar. Для этой цели я написал стили для CustomRatingBar следующим образом:
<style name="CustomRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/custom_ratingbar</item>
<item name="android:minHeight">25dp</item>
<item name="android:maxHeight">25dp</item>
</style>
Но размер не изменяется, скорее, он сжимает строку рейтинга следующим образом:
Доступные для рисования файлы: custom_ratingbar.xml, custom_ratingbar_empty, custom_ratingbar_filled
В моем xml RatingBar выглядит так:
<RatingBar
android:id="@+id/RatingBar"
style="@style/CustomRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:isIndicator="true"
android:numStars="5" />
Как я могу изменить размер звезды в строке рейтинга, не уменьшая ее?
2 ответа
Попробуй это,
пользовательский стиль рейтинговой шкалы с использованием android's RatingBar маленький стиль.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomRatingBar" parent="@android:style/Widget.RatingBar" >
<item name="android:numStars">5</item>
<item name="android:rating">4.5</item>
<item name="android:stepSize">0.5</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingBottom">44dip</item>
<item name="android:layout_marginLeft">4dip</item>
<item name="android:layout_marginTop">4dip</item>
Проверьте пример. для того же.
Другое решение:
Android не будет масштабировать значки в строке рейтинга. При уменьшении minHeight и maxHeight андроид всегда будет обрезать иконки, как показано на рисунке. Похоже, что единственное решение состоит в том, чтобы предоставить собственные значки для звезд с желаемыми размерами и установить для minHeight и maxHeight размер значков.
Просто добавьте ниже строки в свой рейтинг Bar в формате XML
android:scaleX="0.5"
android:scaleY="0.5"
Я сталкивался с той же проблемой, и хотя этот вопрос очень старый, я надеюсь, что это поможет кому-то, кто сталкивается с подобным сценарием.
Для увеличения размера звездочек в рейтинговой строке нам нужно использовать android:scaleX и android:scaleY. Пожалуйста, предоставьте следующий пример,
<RatingBar
android:id="@+id/ratingBar"
android:numStars="5"
android:rating="4"
android:isIndicator="true"
android:scaleX=".5"
android:scaleY=".5"
android:transformPivotX="0dp"
android:transformPivotY="0dp"
android:layout_marginBottom="-26dp"
android:layout_marginRight="-100dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/FoursquareReviewRating"/>
Кроме того, вы можете найти более подробную информацию на https://en.proft.me/2017/06/18/decorating-ratingbar-android/
<..
android:scaleX=".6"
android:scaleY=".6"
//to avoid the unnecessary space
android:transformPivotX="0dp"
../>