2012-02-17 46 views
6

Tôi có một vài TextView trong ứng dụng của mình, nơi tôi sử dụng kiểu chữ tùy chỉnh. Tôi đã đưa ra trọng tâm bố cục xem trung tâm để lấy văn bản được căn giữa trong bố cục gốc. Có vẻ tốt trong previewer với font Sans, nhưng khi tôi thay đổi kiểu chữ, kết quả trông giống như văn bản được chuyển xuống, như thế này:Cỡ chữ chữ tùy chỉnh thay đổi rất lớn giữa các phông chữ

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

So với điều này:

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

Đây là xml cho các phần tử rằng:

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

này cũng xảy ra khi tôi sử dụng fill_parent cho layout_width và chiều cao của chế độ xem văn bản, với trọng tâm văn bản. Tôi đặt Typeface tùy chỉnh trong OnCreate của chế độ xem trong đó bố cục này được sử dụng, chỉ bằng cách sử dụng TextView.SetTypeface.

Có ai biết điều gì có thể gây ra điều này không? Tôi đang gặp khó khăn khi theo dõi bất cứ điều gì về điều này. Như một lưu ý, tôi đã làm việc xung quanh này trên một số quan điểm bằng cách thiết lập margin_bottom đến -10dp hoặc hơn, nhưng tôi muốn loại bỏ điều đó, và tôi không thể có được hack để làm việc trên quan điểm hạn chế như cái này, dù sao đi nữa.

Phông chữ là Anton, nhân tiện.

EDIT: Đây chắc chắn là kết quả của văn bản quá lớn đối với vùng chứa của nó. Điều này là, Sans chỉ vừa vặn, và phông chữ mới sẽ phù hợp với nhưng kích thước đo của nó quá lớn. Những gì tôi hy vọng là tìm cách để có được văn bản vẫn ở kích thước hiển thị hiện tại của nó và phù hợp ở trung tâm của container, theo cách mà không cảm thấy quá hacky =)

+0

Tôi nghĩ ít nhất tôi đã theo dõi nguồn gốc của vấn đề này. Nếu tôi đặt yếu tố này bên trong một Layout lớn hơn nhiều, nó sẽ xoay quanh đúng cách. Vì vậy, tôi nghĩ rằng đây chỉ là hành vi mặc định cho một phần tử bất cứ khi nào nó không thể phù hợp bên trong khung nhìn cha mẹ của nó. Nó chỉ là văn bản này nghĩ rằng nó lớn hơn nó thực sự hiển thị. Vẫn không chắc chắn sửa chữa tốt nhất là gì. – EdwardRowe

+0

Vấn đề là 'android: textSize =" 32dp "' của chế độ xem văn bản, làm cho chiều cao của TextView không thích hợp để phù hợp nhất với 32dp hoặc làm cho chiều cao textView lớn hơn hoặc kích thước văn bản ít hơn. – MKJParekh

+0

Cảm ơn bạn đã phản hồi! Tôi nghĩ rằng đó thực sự là hai lựa chọn tốt nhất cho một sửa chữa hợp pháp, nhưng bây giờ tôi tự hỏi tại sao văn bản nghĩ rằng nó có kích thước khác so với sans. Chỉ có rất nhiều không gian trống với số đó. – EdwardRowe

Trả lời

0

Bạn có 3 tùy chọn

enter image description here

  1. Giảm text size
  2. Tăng chiều cao của FrameLayout
  3. Thay đổi font mà có thể phù hợp một cách chính xác
    bạn không thể thay đổi thuộc tính của font chữ, nó được thiết kế là như vậy một cách mà nó có không gian trống ở trên nó, mà không phù hợp với bạn cho android:layout_height="50dp" khi android:textSize="32dp"
Các vấn đề liên quan