knoptekst wordt niet verticaal gecentreerd in de knop

Ik maak een Android-app en ik heb een knop met een aangepaste achtergrondafbeelding erachter. De achtergrondafbeelding is slechts een rechthoek, maar nu lijkt de knoptekst niet verticaal te zijn gecentreerd. Hier is mijn xml voor de knop:

<button 
android:id="@+id/save_to_list"
android:layout_below="@+id/info_pic"
android:text="SAVE TO LIST"
android:textColor="@android:color/white"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_width="260dp"
android:layout_height="35dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"></button>

en ik heb de achtergrond hier ingesteld:

ImageView button_bg = (ImageView)findViewById(R.id.button_background);
savetolist_button.setBackgroundDrawable(button_bg.getDrawable());

Is er een plek waar de positie van de tekst binnen een knop kan worden gewijzigd?

6

4 antwoord

android:layout_gravity defines layout alignment inside it's parent. To align text within the button you need android:gravity, for example

<button 
    ...
    android:gravity="center"
    ...>
</button>
12
toegevoegd

Uw knop is te kort om in de tekst te passen. Verhoog de layouthoogte en de tekst moet gecentreerd zijn.

4
toegevoegd

Uw tekst heeft waarschijnlijk een beetje opvulling in het lettertype ingebouwd als onderdeel van elke letter en daarom wordt uw tekst in één richting gedrukt. Zet de layouthoogte op "wrap_content" en uw tekst moet nu correct gecentreerd zijn.

1
toegevoegd

Ik vond het het beste om een ​​9-patch afbeelding te gebruiken voor een rechthoekige achtergrond in plaats van een xml-tekenbaar.

0
toegevoegd