2011-10-27 25 views
5

Tworzę aplikację dla systemu Android, a za przyciskiem mam przycisk z niestandardowym obrazem tła. Obraz tła jest tylko prostokątem, ale tekst przycisku nie wydaje się być wyśrodkowany w pionie. Oto mój xml dla przycisku:Tekst przycisku nie jest wyśrodkowany pionowo w przycisku

<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> 

i ustawić tło tutaj:

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

Czy istnieje gdzie zmienić położenie tekstu w przycisku?

Odpowiedz

12

android:layout_gravity definiuje wyrównanie układu w jego rodzica. Aby wyrównać tekst w przycisk trzeba android:gravity np

<Button 
    ... 
    android:gravity="center" 
    ...> 
</Button> 
1

Twój tekst prawdopodobnie zawiera część dopełnienia wbudowaną w czcionkę jako część każdej litery, dlatego tekst jest przesuwany w jednym kierunku. Ustaw parametr layout_height na "wrap_content", a tekst powinien być teraz wycentrowany poprawnie.

0

Znalazłem, że najlepiej jest użyć obrazu z poprawką 9 dla tła prostokątnego zamiast rysowania xml.

4

Twój przycisk jest zbyt krótki, aby dopasować tekst prawidłowo. Zwiększ wysokość layout_height, a tekst powinien być wyśrodkowany.

0

Można ustawić wagę do centrum:

android:gravity="center" 
Powiązane problemy