2009-03-03 5 views

Répondre

8

La réponse courte est que c'est techniquement possible. Le plus simple serait de créer votre propre RatingBar basé sur le code source RatingBar (plus élégant serait de extend le RatingBar orignal dans le vôtre). À partir de là, vous devrez également créer votre propre style RatingBar en utilisant le fichier source original RatingBar xml comme exemple (ou hériter et étendre le style RatingBar original).

La source est disponible avec git sur developer.android.com.

Je pense que la création de votre propre barre de notation est déconseillée car elle va à l'encontre de l'aspect cohérent du système d'exploitation.

56

ne suis pas sûr 1.1, mais avec 1,6 et plus tard, vous pouvez simplement étendre Widget.RatingBar style et remplacer les propriétés qui sont responsables de dessinables étoiles (en values/styles.xml):

<style name="myRatingBar" parent="@android:style/Widget.RatingBar"> 
     <item name="android:progressDrawable">@drawable/my_ratingbar_full</item> 
     <item name="android:indeterminateDrawable">@drawable/my_ratingbar_full</item> 
</style> 

Il n'y a pas besoin de sous-classe RatingBar, juste passer ce style avec l'attribut « style »:

<RatingBar style="@style/myRatingBar" ... /> 

Télécharger les sources Android et regardez le ratingbar_full.xml dans le dossier drawable noyau pour voir ce qu'il faut mettre en my_ratingbar_full.

Vous pouvez trouver une version plus complète de ce ici: How to create Custom Ratings bar in Android

+0

Est-il possible de le modifier programatically? –

+1

Si vous créez votre RatingBar par programme, vous pouvez passer le style en tant que dernier paramètre à son constructeur, RatingBar (Context context, AttributeSet attrs, int defStyle) – kozyr

Questions connexes