J'ai ajouté une RatingBar dans une mise en page:
<RatingBar
android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"
/>
Mais le style par défaut de la barre de notation est trop grand.
J'ai essayé de le changer en ajoutant le style Android:style="?android:attr/ratingBarStyleSmall"
Mais le résultat est trop petit et il est impossible de fixer un tarif avec cette propriété.
Comment pourrais-je faire?
Comment coller le code donné ici ...
Étape 1. Vous avez besoin de vos propres étoiles de notation dans
res/drawable
...Étape-2 Dans
res/drawable
vous avez besoinratingstars.xml
comme suit ...Étape-3 Dans
res/values
vous avez besoinstyles.xml
comme suit ...Étape 4 Dans votre mise en page ...
la source
Utilisez simplement:
Modifiez le facteur d'échelle en fonction de vos besoins.
Afin de mettre à l'échelle sans créer de remplissage sur la gauche, ajoutez également
la source
codeandroid:scaleX="0.75" android:scaleY="0.75" android:layout_marginRight="-25dp"
android:layout_height="40dp"
Il n'est pas nécessaire d'ajouter un auditeur au
?android:attr/ratingBarStyleSmall
. Ajoutez simplementandroid:isIndicator=false
et il capturera les événements de clic, par exemplela source
le petit implémenté par l'OS
la source
appliquer ceci.
la source
J'ai trouvé une solution plus facile que je ne le pense donnée par celles ci-dessus et plus facile que de rouler la vôtre. J'ai simplement créé une petite barre d'évaluation, puis j'y ai ajouté un onTouchListener. À partir de là, je calcule la largeur du clic et détermine le nombre d'étoiles à partir de cela. Ayant utilisé ceci plusieurs fois, la seule bizarrerie que j'ai trouvée est que le dessin d'une petite barre de notation ne se révèle pas toujours à droite dans un tableau à moins que je ne l'enferme dans un LinearLayout (semble droit dans l'éditeur, mais pas l'appareil) . Quoi qu'il en soit, dans ma mise en page:
et au sein de mon activité:
J'espère que ça aidera quelqu'un d'autre. Certainement plus facile que de dessiner le sien (même si j'ai trouvé que cela fonctionne aussi, mais je voulais juste une utilisation facile des étoiles).
la source
ratingBarStyleSmall
étoiles sont vraiment trop petites pour être utiles. Je pense que je vais devoir rouler moi-même pour obtenir des étoiles de taille intermédiaire.la source
// ajoutez ces lignes pour une petite barre de notation
la source
bien que la réponse de Farry fonctionne, pour les appareils Samsung, RatingBar a pris une couleur bleue aléatoire au lieu de celle définie par moi. Alors utilisez
au lieu.
Code complet comment l'utiliser:
la source
La meilleure réponse pour une petite barre de notation
la source
Utilisez ce code
la source
la source
La meilleure réponse que j'ai eu
utilisateur aime ça
Augmentation / diminution des tailles à l'aide scaleX et scaleY valeur
la source
utilisez le code suivant pour la petite barre de notation avec l'événement onTouch
la source
Après de nombreuses recherches, j'ai trouvé la meilleure solution pour réduire la taille des barres de notation personnalisées est d'obtenir la taille de la progression pouvant être dessinée dans certaines tailles, comme mentionné ci-dessous:
xxhdpi - 48 * 48 px
xhdpi - 36 * 36 px
hdpi - 24 * 24 px
Et avec style, mettez le minheight et le maxheight à 16 dp pour toutes les résolutions.
Faites-moi savoir si cela ne vous aide pas à obtenir les meilleures barres de classement de petite taille, car j'ai trouvé ces tailles très compatibles et équivalentes à l'attribut de style ratingbar.small.
la source
Cela fonctionne pour moi dans la barre de notation xml style = "? Android: attr / ratingBarStyleSmall" ajoutez this.it fonctionnera.
la source
Je résous ce problème comme suit: style = "? Android: attr / ratingBarStyleSmall"
la source