2012-02-17 79 views
6

我有我的應用程序的幾個TextViews,我使用自定義的字體之間的差別很大。我給了視圖居中佈局的重力,以獲得文本居中在其父佈局。它看起來很好與Sans字體預覽,但是當我改變字體,結果貌似文本向下移,這樣的:自定義字體的文本大小的字體

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

與此相比:

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

下面是該元素的XML:

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

當我使用FILL_PARENT也會出現這種情況用於文本視圖的layout_width和height,帶文本重心。我只是通過使用TextView.SetTypeface,在使用此佈局的視圖的OnCreate中設置自定義字體。

有誰知道什麼可能會造成這個?我無法跟蹤任何事情。

作爲一個說明,我已經通過將margin_bottom設置爲-10dp左右來解決這個問題,但我想刪除它,並且我無法使用這種方法來處理受限視圖這一個,反正。

的字體是安東,順便。

編輯:這絕對是文本是它的容器過大的結果。事情是,Sans非常適合,而且新字體將適合,但其實測尺寸太大。什麼我希望是找到一種方法來獲取文本保留其當前可見的尺寸,適合於容器的中心,以這樣的方式並不感到太哈克=)

+0

我想我至少已經找到了這個問題的根源。如果我把這個元素放在一個更大的佈局中,它會正確居中。所以我認爲這只是一個元素的默認行爲,只要它不適合其父視圖。只是這個文本認爲它比實際顯示的要大。仍然不確定最佳解決方案是什麼。 – EdwardRowe 2012-02-17 05:41:01

+0

問題是'機器人:TEXTSIZE =「32dp」'的TextView的,造成的TextView的高度是不恰當的最佳配合32dp要麼使TextView的高度更大或文字大小更小。 – MKJParekh 2012-02-17 06:08:47

+0

感謝您的迴應!我認爲這些確實是合法修復的唯一兩個很好的選擇,但現在我想知道爲什麼文本認爲它的大小與sans相比是如此不同。這個數字只有很多空白。 – EdwardRowe 2012-02-17 06:30:23

回答

0

你有3個選項

enter image description here

  1. 調低text size
  2. 增加的FrameLayout
  3. 高度
  4. 更改font能適應正確
    你不能改變字體,它被設計的特性是這樣一種方式,它有它上面的空白處,它不適合你給出android:layout_height="50dp"android:textSize="32dp"