Подтвердить что ты не робот

Как уменьшить размер рейтинга?

В моей деятельности у меня есть несколько баров рейтинга. Но размер этого бара настолько велик! Как уменьшить размер?

Edit

Благодаря Габриэлю Негуту, Я сделал это со следующим стилем:

<RatingBar
style = "?android:attr/ratingBarStyleSmall"
android:numStars = "5"
android:rating   = "4" />

Теперь размер уменьшается, но количество звезд и рейтинг не вступают в силу!!! Зачем? У меня 7 звезд, из которых 6 из них выбраны.

4b9b3361

Ответ 1

Исходная ссылка, которую я опубликовал, теперь отключена (есть веская причина, по которой размещение ссылок не является лучшим способом). Вам нужно стилизовать RatingBar с помощью ratingBarStyleSmall или пользовательского стиля, наследующего от Widget.Material.RatingBar.Small (при условии, что вы используете Material Design в своем приложении).

Вариант 1:

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleSmall"
    ... />

Вариант 2:

// styles.xml
<style name="customRatingBar"   
    parent="android:style/Widget.Material.RatingBar.Small">
    ... // Additional customizations
</style>

// layout.xml
<RatingBar
    android:id="@+id/ratingBar"
    style="@style/customRatingBar"
    ... />

Ответ 2

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

 <RatingBar
        android:id="@+id/listitemrating"
        style="@android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleX=".5"
        android:scaleY=".5"
        android:transformPivotX="0dp"
        android:transformPivotY="0dp"
        android:isIndicator="true"
        android:max="5" />

Ответ 3

Если вы хотите показать панель оценки небольшого размера, просто скопируйте и вставьте этот код в свой проект.

  <RatingBar
    android:id="@+id/MyRating"
    style="?android:attr/ratingBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/getRating"
    android:isIndicator="true"
    android:numStars="5"
    android:stepSize="0.1" />

Ответ 4

Вы можете установить его в XML-коде для RatingBar, используйте scaleX и scaleY для соответствующей настройки. "1.0" будет нормальным размером, и что-нибудь в ".0" уменьшит его, и что-то большее, чем "1.0", увеличит его.

<RatingBar
  android:id="@+id/ratingBar1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:scaleX="0.5"
  android:scaleY="0.5" />

Ответ 5

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

<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:scaleX=".5"
    android:rating="3.5"
    android:scaleY=".5"
    android:transformPivotX="0dp"
    android:transformPivotY="0dp"
    android:max="5"/>

введите описание изображения здесь

Ответ 6

Рабочий пример

             <RatingBar
                style="@style/RatingBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:numStars="5"
                android:rating="3.5"
                android:stepSize="0.5" />

и добавьте это в свой XML файл стилей

<style name="RatingBar"   
parent="android:style/Widget.Material.RatingBar.Small">
<item name="colorControlNormal">@color/primary_light</item>
<item name="colorControlActivated">@color/primary_dark</item>
</style>

Таким образом, вам не нужно настраивать рейтингBar.

Ответ 7

<RatingBar
  style="?android:attr/ratingBarStyleIndicator"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
/>

Ответ 8

Проверьте мой ответ здесь. Лучший способ достичь этого.

 <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" />

Ответ 9

Если вы используете Рейтинговую строку в Linearlayout с weightSum. Пожалуйста, убедитесь, что вы не должны назначать layout_weight для строки рейтинга. Вместо этого поместите строку рейтинга в относительную компоновку и придайте вес относительной компоновке. Сделайте содержание ширины строки рейтинга.

<RelativeLayout
    android:layout_width="0dp"
    android:layout_weight="30"
    android:layout_gravity="center"
    android:layout_height="wrap_content">
        <RatingBar
            android:id="@+id/userRating"
            style="@style/Widget.AppCompat.RatingBar.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:stepSize="1" />
</RelativeLayout>

Ответ 10

Если вам нужен только стиль по умолчанию, убедитесь, что у вас есть следующая ширина/высота, в противном случае numStars могут быть испорчены:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

Ответ 11

В RatingBar атрибут:

style="?android:attr/ratingBarStyleIndicator" 

Ответ 12

Используя Widget.AppCompat.RatingBar, вы можете использовать 2 стиля; Indicator и Small для больших и маленьких размеров соответственно. Смотрите пример ниже.

<RatingBar
    android:id="@+id/rating_star_value"
    style="@style/Widget.AppCompat.RatingBar.Small"
    ... />

Ответ 13

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

    private LinearLayout generateRatingView(float value){
        LinearLayout linearLayoutRating=new LinearLayout(getContext());
        linearLayoutRating.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
        linearLayoutRating.setGravity(Gravity.CENTER);
        RatingBar ratingBar = new RatingBar(getContext(),null, android.R.attr.ratingBarStyleSmall);
        ratingBar.setEnabled(false);
        ratingBar.setStepSize(Float.parseFloat("0.5"));//for enabling half star
        ratingBar.setNumStars(5);
        ratingBar.setRating(value);
        linearLayoutRating.addView(ratingBar);
        return linearLayoutRating;
    }

Ответ 14

В теге RatingBar добавьте эти две строки

style="@style/Widget.AppCompat.RatingBar.Small"
android:isIndicator="false"