web-dev-qa-db-fra.com

Espace entre les étoiles de notation

J'ai besoin d'insérer un espace entre les étoiles de ma barre de notation, par exemple la barre de notation est bien:

enter image description here

mais j'en ai besoin ainsi:

enter image description here

comment puis-je faire ceci?

36
ademar111190

Je ne sais plus si cela sera utile, mais j'ai fait une bibliothèque personnalisée qui vous permet de changer l'espace entre les étoiles par programmation et en XML (entre autres): SimpleRatingBar .

Il comporte:

  • Entièrement fonctionnel Android:layout_width: il peut être réglé sur wrap_content, match_parent ou abritary dp.
  • Nombre arbitraire d'étoiles.
  • Taille de pas arbitraire.
  • La taille des étoiles peut être contrôlée exactement ou en définissant une taille maximale.
  • Couleurs personnalisables à l'état normal (bordure, remplissage et fond d'étoiles et barre de notation).
  • Couleurs personnalisables à l'état pressé (bordure, remplissage et fond d'étoiles et barre de notation).
  • Séparation de taille personnalisable entre les étoiles.
  • Largeur de bordure personnalisable d'étoiles.
  • Rayon de coin d'étoiles personnalisable.
  • Permet de définir OnRatingBarChangeListener
  • Le remplissage des étoiles peut être réglé pour commencer de gauche à droite ou de droite à gauche (prise en charge du langage RTL).
  • AnimationBuilder intégré dans la vue pour définir le classement par programme avec l'animation.

En voici un aperç .

Dans votre cas, il vous suffira de faire:

ratingbar.setStarsSeparation(20, Dimension.DP);

ou, par exemple, en pixels:

ratingbar.setStarsSeparation(100, Dimension.PX);

Vous pouvez le trouver soit dans jcenter ou dans Maven Central. Donc, dans votre build.gradle fichier il suffit d'ajouter à vos dépendances:

compile 'com.iarcuschin:simpleratingbar:0.1.+'

4
FlyingPumba

Vous avez une prochaine propriété.

Android:progressDrawable = "@drawable/rating_stars"
Android:indeterminateDrawable = "@drawable/rating_stars"

@ drawable/rating_stars:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:id="@+Android:id/background"
          Android:drawable="@drawable/star_empty" />
    <item Android:id="@+Android:id/secondaryProgress"
          Android:drawable="@drawable/star_empty" />
    <item Android:id="@+Android:id/progress"
          Android:drawable="@drawable/star" />
</layer-list>

star_empty et star sont les images qui se trouvent dans votre répertoire drawable. Ainsi, vous pouvez changer star et star_empty dans un éditeur graphique et ajouter un spassing si vous en avez besoin.

4
i_Am

Utilisez simplement l'icône personnalisée pour cela et utilisez le style, je veux dire Photoshop comme vous voulez qu'il ressemble et remplace par l'icône de style de notation du système.

1
Rajeev Kumar

Je pense que vous devez récupérer une copie du fichier png de l'étoile du système et ajouter manuellement le rembourrage que vous souhaitez avec un éditeur photoshop/gimp/un autre éditeur.

0
FoamyGuy

Je suis d'accord avec Tim, j'ai appliqué la même logique et cela a fonctionné. Ici, dans mon projet, j'utilise mes propres images d'étoiles pour l'étoile ratin J'ai fait des images d'étoiles ayant un espace supplémentaire (rembourrage) sur le côté droit qui a entraîné un espace entre les étoiles

0
Meher