2012-02-17 16 views
6

Mam kilka aplikacji TextView w mojej aplikacji, w których używam niestandardowego kroju pisma. Skoncentrowałem się na grawitacji układu, aby tekst był wyśrodkowany w układzie nadrzędnym. Wygląda dobrze w previewer z czcionce Sans, ale kiedy zmienić krój, wynik wygląda tekst jest przesunięty w dół, jak to:Niestandardowy rozmiar tekstu krojów pisma różni się znacznie między czcionkami.

TextView with Shifted Text http://i43.tinypic.com/m97hfl.png

porównaniu do tego:

TextView with Sans http://i41.tinypic.com/1zemv4.png

Oto xml dla tego elementu:

<FrameLayout android:id="@+id/Turn_ScoreA_Frame" android:padding="5dp" android:background="@color/teamA_secondary" android:layout_margin="5dp" android:layout_gravity="center" android:layout_height="50dp" android:layout_width="110dp"> 
    <android.view.View android:id="@+id/Turn_ScoreABG" android:background="@color/teamA_primary" android:layout_height="fill_parent" android:layout_width="fill_parent"></android.view.View> 
    <TextView android:id="@+id/Turn_ScoreA" android:includeFontPadding="false" android:text="5" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="32dp"></TextView> 
</FrameLayout> 

Dzieje się tak również, gdy używam fill_parent dla layout_width i height widoku tekstu, z centrum grawitacji tekstu. Ustawiłem niestandardowy krój czcionki w opcji OnCreate widoku, w którym ten układ jest używany, tylko za pomocą TextView.SetTypeface.

Czy ktoś wie, co może być przyczyną? Mam problem ze śledzeniem czegokolwiek na ten temat.

Na koniec pracowałem nad kilkoma widokami, ustawiając margin_bottom na -10dp lub mniej, ale chciałbym to usunąć i nie mogę zmusić go do pracy nad ograniczonymi widokami, takimi jak ten i tak.

Czcionką jest Anton, przy okazji.

EDYCJA: Jest to zdecydowanie wynik zbyt dużego tekstu dla jego kontenera. Rzecz w tym, że Sans pasuje idealnie, a nowa czcionka pasowałaby do, ale jej zmierzona wielkość jest zbyt duża. Mam nadzieję, że uda mi się znaleźć sposób, aby tekst pozostał przy jego widocznym rozmiarze i zmieścił się w środku pojemnika, w taki sposób, aby nie był zbyt hackowany =)

+0

Myślę, że przynajmniej znalazłem źródło tego problemu. Jeśli umieściłem ten element w znacznie większym Układzie, centrowanie odbywa się prawidłowo. Myślę więc, że jest to domyślne zachowanie dla elementu, gdy nie mieści się w jego widoku rodzica. Po prostu ten tekst myśli, że jest większy niż faktycznie wyświetla. Nadal nie jestem pewien, jaka jest najlepsza poprawka. – EdwardRowe

+0

Problemem jest "android: textSize =" 32dp "" z widokiem tekstowym, ponieważ wysokość TextView jest nieodpowiednia dla najlepszego dopasowania 32dp albo zwiększ wysokość textView, albo mniej tekstu. – MKJParekh

+0

Dzięki za odpowiedź! Sądzę, że są to jedyne dwie dobre opcje legalnej poprawki, ale teraz zastanawiam się, dlaczego tekst uważa, że ​​ma tak różny rozmiar w porównaniu do sans. Jest tylko dużo pustej przestrzeni z tym numerem. – EdwardRowe

Odpowiedz

0

Masz 3 Opcje

enter image description here

  1. Zmniejsz text size
  2. zwiększyć wysokość FrameLayout
  3. Zmień font który zmieści poprawnie
    nie można zmienić właściwości czcionki, jest on zaprojektowany w taki sposób, że ma pustą przestrzeń nad nim, które nie mieszczą się w dany android:layout_height="50dp" gdy android:textSize="32dp"
Powiązane problemy