web-dev-qa-db-fra.com

Comment puis-je diminuer la taille de Ratingbar?

Dans mon activité, j'ai quelques barres d'évaluation. Mais la taille de cette barre est si grande! Comment puis-je la réduire?

Modifier

Merci à Gabriel Negut, .__ Je l’ai fait avec le style suivant:

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

Maintenant, la taille est réduite mais le nombre d'étoiles et le classement n'entrent pas en vigueur !!! Pourquoi? J'ai 7 étoiles que 6 d'entre elles sont sélectionnées.

101
Hesam

Le lien original que j'ai posté est maintenant brisé (il y a une bonne raison pour laquelle publier uniquement des liens n'est pas la meilleure solution). Vous devez attribuer un style à la RatingBar avec soit ratingBarStyleSmall, soit un style personnalisé héritant de Widget.Material.RatingBar.Small (en supposant que vous utilisez Material Design dans votre application).

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

Si vous souhaitez afficher la barre d’évaluation en petite taille, copiez et collez ce code dans votre projet.

  <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

C’était ma solution après avoir beaucoup lutté pour réduire la barre d’évaluation en petite taille sans un rembourrage moche

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

Vous pouvez le définir dans le code XML pour RatingBar, utiliser scaleX et scaleY pour ajuster en conséquence. "1.0" correspond à la taille normale, et tout ce qui se trouve dans ".0" la réduira, ainsi que toute valeur supérieure à "1.0" l'augmentera.

<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

L'extrait ci-dessous m'a permis de redimensionner le ratingBar.

<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

Exemple de travail

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

et ajoutez ceci dans votre fichier XML de styles

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

De cette façon, vous n’avez pas besoin de personnaliser ratingBar.

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

Vérifiez ma réponse ici . Le meilleur moyen d'y parvenir. 

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

et utiliser comme 

<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

Si vous utilisez Barre d'évaluation dans Linearlayout avec weightSum. Assurez-vous de ne pas attribuer le poids de layout_weight pour la barre d'évaluation. Au lieu de cela, placez la barre de classement dans la disposition relative et donnez du poids à la disposition relative. Faire le contenu de la largeur de la barre de classement.

<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

En utilisant Widget.AppCompat.RatingBar, vous avez 2 styles à utiliser; Indicator et Small pour les grandes et les petites tailles, respectivement. Voir exemple ci-dessous.

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

Si vous n'avez besoin que du style par défaut, assurez-vous que vous avez la largeur/hauteur suivante, sinon les numStars pourraient être gâchés:

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

Dans RatingBar donne l'attribut:

style="?android:attr/ratingBarStyleIndicator" 
2
rajlaxmi_jagdale

Pour ceux qui ont créé la barre d’évaluation par programme et qui veulent définir une petite barre d’évaluation au lieu de la grande barre d’évaluation par défaut


 private LinearLayout generateRatingView (valeur flottante) {
 LinearLayout linearLayoutRating = new LinearLayout (getContext ()); 
 linearLayoutRating.setLayoutParams (nouveau TableRow.LayoutParams (TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); ;__. linearLayoutRating.setGravity (Gravity.CENTER); 
 RatingBar ratingBar = nouveau RatingBar (getContext (), null, Android.R.attr.ratingBarStyleSmall);
 ratingBar.setEnabled (false); 
 ratingBar.setStepSize (Float.parseFloat ("0.5")); // pour activer la demi-étoile 
 ratingBar.setNumStars (5); 
 ratingBar.setRating (value); 
 linearLayoutRating.addView (ratingBar); 
 return linearLayoutRating; 
 } 

0
Sachin Tanpure