2012-02-16 16 views
6

Mam problem, który wydaje się dość banalny, ale nie udało mi się go rozwiązać tak daleko.Centrowanie tekstu dużej czcionki w TextView

Mam pełnoekranową akcję krajobrazową, w której mam pojedynczy wiersz LinearLayout zawierający dwa widoki tekstowe, które zajmują po połowie ekranu. Jeden z widoków tekstowych ma wyśrodkowany znak, niezależnie od rozmiaru czcionki.

Problem polega na tym, że kiedy zwiększam rozmiar czcionki tego znaku, nie centruje on, ale zamiast tego ma swoje centrum poniżej środkowej linii ekranu.

Oto aktywność z rozmiaru 200sp znaków na 800 * 480 ekranie, wygląda ok - postać skupia:

http://i122.photobucket.com/albums/o251/px_seven/char_200_sp.jpg

Oto aktywność z rozmiaru 300sp charakteru, teraz postać została przeniesiona w dół :

http://i122.photobucket.com/albums/o251/px_seven/char_300_sp.jpg

jest to układ (I zmieniać od wielkości 250sp domyślnej czcionki w kodzie):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:keepScreenOn="true"> 

<TextView 
    android:id="@+id/tv1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:layout_gravity="center" 
    android:gravity="center_horizontal" 
    android:background="#000000" /> 

<TextView 
    android:id="@+id/tv2" 
    android:lines="1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:background="#000000" 
    android:text="N" 
    android:textSize="250sp" /> 

</LinearLayout> 

Czy ktoś widzi, na czym polega problem?

Dzięki Fredric

+0

Jakie zdaniem chcesz osiągnąć? Twój układ jest poziomy, ale wygląda na to, że jest ustawiony pionowo na twoim zrzucie ekranu –

+0

C.d., Aktywność jest ustawiona na krajobraz, tylko emulator jest wyświetlany w trybie portretu. –

+0

Właściwie próbowałem tego kodu i wygląda dobrze. Litera N jest wyśrodkowana w swoim TextView. Czy nie jest to rodzaj widoku, który chcesz osiągnąć: http://i18.photobucket.com/albums/b122/floatercrop/d0ab407b.png –

Odpowiedz

12

Spróbuj dodać ten atrybut do widoku tekstu android:includeFontPadding="false"

+0

Ach, tak, widziałem ten atrybut. Nie mogę sobie przypomnieć, gdybym tego spróbował - będę miał jeszcze dziś wieczór, dzięki! –

+1

Nie - android: includeFontPadding = "false" nie działało - w rzeczywistości nic nie zmieniało. Próbowałem zarówno z Androidem: layout_height = "wrap_content" i "match_parent". Więcej pomysłów? :) Pytanie brzmi, czy margines od znaku do granicy widoku w ogóle można zmniejszyć do zera? –

+0

Możesz spróbować rozszerzyć TextView i stworzyć własny TextView. Chociaż myślę, że musi istnieć trywialna droga, której nie mogłem znaleźć. –

Powiązane problemy