it-swarm.com.de

Wie kann ich die Größe von Ratingbar verringern?

In meiner Aktivität habe ich einige Bewertungsbalken. Aber die Größe dieser Leiste ist so groß! Wie kann ich sie verkleinern?

Bearbeiten

Vielen Dank an Gabriel Negut. Ich habe es mit folgendem Stil gemacht:

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

Jetzt wird die Größe reduziert, aber die Anzahl der Sterne und die Bewertung werden nicht wirksam !!! Warum? Ich habe 7 Sterne, von denen 6 ausgewählt sind.

101
Hesam

Der ursprüngliche Link, den ich gepostet habe, ist jetzt defekt (es gibt einen guten Grund, warum das Posten von Links nicht der beste Weg ist). Sie müssen die Variable RatingBar entweder mit ratingBarStyleSmall oder mit einem benutzerdefinierten Stil formatieren, der von Widget.Material.RatingBar.Small erbt (vorausgesetzt, Sie verwenden Material Design in Ihrer App).

Option 1:

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

Option 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"
    ... />
109
Gabriel Negut

Wenn Sie die Bewertungsleiste klein anzeigen möchten, kopieren Sie diesen Code und fügen Sie ihn in Ihr Projekt ein.

  <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" />
59
Pir Fahim Shah

Dies war meine Lösung, nachdem ich mich bemüht hatte, die Bewertungsleiste in geringer Größe ohne hässliche Polsterung zu reduzieren

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

Sie können dies im XML-Code für die Variable RatingBar festlegen und mit scaleX und scaleY entsprechend anpassen. "1.0" wäre die normale Größe, und alles in ".0" verringert es, auch etwas größer als "1.0" erhöht es.

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

Der folgende Ausschnitt funktionierte für mich, um die Bewertungsleiste zu ändern

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

 enter image description here

29
Naveed Ahmad

Arbeitsbeispiel

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

und fügen Sie dies in Ihre XML-Formatdatei ein

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

Auf diese Weise müssen Sie die Bewertungsleiste nicht anpassen.

8
Hammad Tariq
<RatingBar
  style="?android:attr/ratingBarStyleIndicator"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
/>
6
nafees4343

Überprüfen Sie meine Antwort hier . Der beste Weg, um es zu erreichen. 

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

und verwenden Sie wie 

<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" />
5
AMAN SINGH

Wenn Sie die Bewertungsleiste in Linearlayout mit weightSum verwenden. Bitte stellen Sie sicher, dass Sie das layout_weight nicht für die Bewertungsleiste zuweisen. Platzieren Sie stattdessen die Bewertungsleiste innerhalb des relativen Layouts und geben Sie dem relativen Layout Gewicht. Bilden Sie den Inhalt für die Breite der Bewertungsleistenbreite.

<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>
3
Varnith Kumar M

Mit Widget.AppCompat.RatingBar können Sie zwei Stile verwenden. Indicator und Small für große bzw. kleine Größen. Siehe Beispiel unten.

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

Wenn Sie nur den Standardstil benötigen, stellen Sie sicher, dass Sie über die folgende Breite/Höhe verfügen. Andernfalls könnten die numStars beschädigt werden:

Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
2
Sean

In RatingBar geben Sie das Attribut:

style="?android:attr/ratingBarStyleIndicator" 
2

Für diejenigen, die eine Bewertungsleiste programmgesteuert erstellt haben und statt einer großen Standard-Bewertungsleiste eine kleine Bewertungsleiste festlegen möchten

 private LinearLayout generateRatingView (Gleitkommawert) {
 LinearLayout linearLayoutRating = new LinearLayout (getContext ()); 
 linearLayoutRating.setLayoutParams (neue TableRow.LayoutParams (TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));. linearLayoutRating.setGravity (Gravity.CENTER); 
 RatingBar ratingBar = neue RatingBar (getContext (), null, Android.R.attr.ratingBarStyleSmall);
 ratingBar.setEnabled (false); 
 ratingBar.setStepSize (Float.parseFloat ("0.5")); // zur Aktivierung des halben Sterns 
 ratingBar.setNumStars (5); 
 ratingBar.setRating (Wert); 
 linearLayoutRating.addView (ratingBar); 
 return linearLayoutRating; 
 } 

0
Sachin Tanpure