2012-02-16 15 views
6

Ho un problema, che sembra abbastanza banale, ma non sono stato in grado di risolverlo fino a questo punto.Centratura del testo di caratteri grandi in TextView

Ho un'attività a schermo intero in cui ho un singolo LinearLayout contenente due TextViews che occupano metà dello schermo ciascuna. Una delle TextView deve avere un carattere centrato, indipendentemente dalle dimensioni del carattere.

Il problema è che quando aumento la dimensione del carattere di questo personaggio non si centra, ma ha il suo centro sotto la linea centrale dello schermo.

Qui è l'attività con carattere di dimensioni 200SP su un * schermo di 800 480, sembra OK - carattere è centrato:

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

Qui è l'attività con carattere di dimensioni 300sp, ora il personaggio si è spostato verso il basso :

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

Questo è il layout (cambio dalla dimensione 250sp carattere predefinito nel codice):

012.
<?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> 

Qualcuno vede qual è il problema?

Grazie, Fredric

+0

Che tipo di vista si vuole raggiungere? Il layout è orizzontale ma sembra verticale nello screenshot –

+0

C.d., l'attività è impostata su orizzontale, è solo che l'emulatore viene visualizzato in modalità verticale. –

+0

In realtà ho provato questo codice e sembra a posto. La lettera N è centrata nel suo TextView. Non è questo il tipo di visualizzazione che vuoi raggiungere: http://i18.photobucket.com/albums/b122/floatercrop/d0ab407b.png –

risposta

12

Prova ad aggiungere questo attributo per la visualizzazione del testo android:includeFontPadding="false"

+0

Ah, sì, ho visto quell'attributo. Non riesco a ricordare se l'ho provato comunque - Ne avrò un altro andare stasera, grazie! –

+1

Nope - android: includeFontPadding = "false" non ha funzionato - in effetti non ha cambiato nulla. Ho provato entrambi con Android: layout_height = "wrap_content" e "match_parent". Altre idee? :) La domanda è se il margine dal char al limite della vista può essere ridotto a zero? –

+0

Puoi provare ad estendere TextView e creare il tuo TextView personalizzato. Anche se penso che ci debba essere un modo banale, non sono riuscito a trovarne uno. –

Problemi correlati