53 votes

Centrer le texte de TextView verticalement par rapport à son image drawableLeft

J'ai ce composant :

 <TextView
    android:id="@+id/item_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/icon" />

L'image dans l'attribut drawableLeft est plus grande que la police du texte, je veux donc que le texte soit centré verticalement par rapport à l'image. Comment puis-je obtenir cet effet ?

121voto

Martin Sykes Points 2421

Vous voulez "gravité" notez qu'il ne faut pas confondre avec la gravité de la mise en page, la gravité de la mise en page déplace l'ensemble de la vue du texte, tandis que la gravité déplace le texte dans la vue du texte.

 <TextView
    android:id="@+id/item_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableStart="@drawable/icon"
    android:gravity="center_vertical" />

72voto

Learn OpenGL ES Points 932

En plus de régler la gravité, cela peut également aider à l'alignement dans certaines situations en réduisant les rembourrages en haut et en bas de la vue de texte, qui peuvent être inégaux :

 android:includeFontPadding="false"

4voto

shengming Points 41

Si vous ne vous souciez pas des accents de texte, essayez simplement android:includeFontPadding="false" . Cela supprimera le remplissage supplémentaire en haut et en bas de TextView . Quant à android:gravity="center_vertical" , cela n'a aucun effet sur mon code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X