Невозможно изменить размер пользовательского 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"
 ../>
Другие вопросы по тегам