Как сделать меньший RatingBar? - PullRequest
127 голосов
/ 20 мая 2010

Я добавил RatingBar в макете:

<RatingBar 
    android:id="@+id/ratingbar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numStars="5"
    android:stepSize="1.0"
    />  

Но стиль по умолчанию для строки рейтинга слишком велик.
Я пытаюсь изменить его, добавив стиль Android: style="?android:attr/ratingBarStyleSmall"

Но результат слишком мал, и с помощью этого свойства невозможно установить ставку.

Как я мог это сделать?

Ответы [ 18 ]

2 голосов
/ 01 мая 2018

Лучший ответ для небольшого рейтинга

<RatingBar
                    android:layout_width="wrap_content"
                    style = "?android:attr/ratingBarStyleSmall"
                    android:layout_height="wrap_content" />
2 голосов
/ 01 декабря 2017

хотя ответ Фарри работает, для устройств Samsung RatingBar взял случайный синий цвет вместо определенного мной. Так что используйте

style="?attr/ratingBarStyleSmall"

вместо.

Полный код как его использовать:

<android.support.v7.widget.AppCompatRatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                style="?attr/ratingBarStyleSmall" // use smaller version of icons
                android:theme="@style/RatingBar"
                android:rating="0"
                tools:rating="5"/>

<style name="RatingBar" parent="Theme.AppCompat">
        <item name="colorControlNormal">@color/grey</item>
        <item name="colorControlActivated">@color/yellow</item>
        <item name="android:numStars">5</item>
        <item name="android:stepSize">1</item>
    </style>
1 голос
/ 27 февраля 2019
 <RatingBar
                    android:rating="3.5"
                    android:stepSize="0.5"
                    android:numStars="5"
                    style = "?android:attr/ratingBarStyleSmall"
                    android:theme="@style/RatingBar"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>

// if you want to style 

 <style name="RatingBar" parent="Theme.AppCompat">
        <item name="colorControlNormal">@color/colorPrimary</item>
        <item name="colorControlActivated">@color/colorAccent</item>
    </style>

// добавить эти строки для небольшого рейтингового бара

style = "?android:attr/ratingBarStyleSmall"
1 голос
/ 17 августа 2017

используйте следующий код для маленькой строки рейтинга с событием onTouch

enter code here


<RatingBar
            android:id="@+id/ratingBar"
            style="?android:ratingBarStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:isIndicator="false"
            android:rating="4"
            android:stepSize="0.5" />
0 голосов
/ 04 июня 2018

Это работает для меня в строка рейтинга xml style = "? android: attr / ratingBarStyleSmall" добавьте это.

0 голосов
/ 17 апреля 2018

Лучший ответ, который я получил

  <style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:minHeight">15dp</item>
    <item name="android:maxHeight">15dp</item>
    <item name="colorControlNormal">@color/white</item>
    <item name="colorControlActivated">@color/home_add</item>
</style>

пользователю нравится это

<RatingBar
                style="?android:attr/ratingBarStyleIndicator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:isIndicator="false"
                android:max="5"
                android:rating="3"
                android:scaleX=".8"
                android:scaleY=".8"
                android:theme="@style/MyRatingBar" />

Увеличение / уменьшение размеров с использованием scaleX и scaleY value

0 голосов
/ 19 декабря 2015

Я решаю эту проблему следующим образом: стиль = "андроид: атр / ratingBarStyleSmall"

0 голосов
/ 20 июля 2017

После долгих исследований я обнаружил, что лучшим решением для уменьшения размера пользовательских рейтинговых шкал является получение размера прогресса, отображаемого в определенных размерах, как указано ниже:

xxhdpi - 48 * 48 пикселей

xhdpi - 36 * 36 px

hdpi - 24 * 24 px

И в стиле положите minheight и maxheight как 16 dp для всех разрешений.

Дайте мне знать, если это не поможет вам получить лучшие рейтинговые панели небольшого размера, так как эти размеры я нашел очень совместимыми и эквивалентными атрибуту стиля ratingbar.small.

...