Centre de texte android bouton
Ma question est très simple.
Comment faire pour centrer le texte sur un bouton dans android?
J'ai essayé de padding à 0, la gravité de centre, mais le résultat quand je le lance il encore que le texte est à l'horizontal centré, mais pas à la verticale. Le texte est un peu décalé vers le bas.
<Button
android:id="@+id/btnSame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:background="@drawable/layout_button_different"
android:gravity="center_vertical|center_horizontal"
android:height="30dp"
android:padding="0dip"
android:text="@string/equals"
android:textColor="@drawable/layout_button_different"
android:textSize="50dp"
android:width="70dp" />
Mon être également pertinentes:
Dans l'activité, je fais ceci:
btnEquals.setCompoundDrawablesWithIntrinsicBounds(null,getResources().getDrawable(R.drawable.up2), null, null);
btnEquals.setPadding(0, 5, 0, 0);
btnEquals.setTextSize(15);
Cela fonctionne, mais après ce que j'ai mis ce:
btnEquals.setCompoundDrawables(null, null, null, null);
btnEquals.setPadding(0, 0, 0, 0);
Résultat est un mauvais alignement vertical.
Vous devez vous connecter pour publier un commentaire.
Votre mise en page existante ne peut pas espérer centre le texte en raison de la taille que vous avez sélectionnée. Vous avez défini le bouton de la hauteur de
30dp
et votre textSize est50dp
, et pour quelque raison que ce soit, Android est incapable de traiter avec que et le centre du texte. Si vous faites votre bouton plus ou votre texte plus petit, vous verrez que le centrage des œuvres.android:layout_height="wrap_content"
?wrap_content
semble pas de soins sur le déversement du texte dans ce cas. Je ne sais pas pourquoi cela arrive, mais c'est ce qui se passe (au moins lorsqu'il est vu à travers l'Éclipse d'affichage visuel de la mise en page; je ne l'ai pas mis sur un périphérique).Il est très facile, vous pouvez mettre ceci:
Il y a trois systèmes à prendre en compte. Le xml du layout designer, le simulateur, et vrai téléphone. Le texte dans le bouton si vous spécifiez gravité="center" ressemblera à ceci.
Dans le xml du layout designer, il va ressembler le plus à gauche de la lettre est dans le centre de la touche, mais le reste des lettres sont à droite. (semble incorrect)
Dans le simulateur, le texte montre bien dans le centre. (correct)
Au téléphone, le texte montre bien, dans le centre. (correct)
Vous pouvez également utiliser des nombres négatifs dans setPadding. Cela peut être utile si votre police est grande, et votre bouton est petit. Essayez également à mettre le haut ou le bas pour un plus nombre négatif si elle est encore au centre de l'écran.
Cela a fonctionné pour moi