2012-04-20 33 views
13

http://dl.dropbox.com/u/24856/Screenshots/android/cutoff.pngxem văn bản cắt một chữ cái trong android

đây là ảnh chụp màn hình từ Android của tôi. văn bản là "asd". tuy nhiên chữ "d" hơi bị cắt. đây là chế độ xem có liên quan:

 <TextView 
      android:id="@+id/stuff" 
      android:padding="2dp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/other_stuff" 
      android:layout_marginTop="33dp" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textStyle="italic" /> 

bất kỳ ý tưởng nào về điều gì đang gây ra điều này?

+0

dán tất cả các tệp xml vào đây, không chỉ của chế độ xem văn bản. –

+0

bạn đã thử xóa phần đệm? (nếu nó hoạt động chỉ cần thay đổi nó để lề) – Joe

Trả lời

15

không ai trong số những đề nghị nêu làm việc, đã kết thúc với một giải pháp hacky mà sẽ bổ sung một khoảng trắng sau khi nhân vật in nghiêng cuối

+3

Đối với hậu thế, tôi sẽ lưu ý kinh nghiệm của tôi. Điều này xảy ra với một phông chữ nghiêng trên nhiều thiết bị (thậm chí lên đến Jellybean). Thay đổi thuộc tính padding không làm gì cả. Chỉ có hai điều hacky làm việc: (1) thiết lập một chiều rộng cố định rộng hơn nhu cầu và (2) lập trình thêm một không gian ở cuối như vậy: tv.setText (tv.getText() + ""); –

+0

Đối với bất cứ ai vẫn đấu tranh với điều này, tôi đã tạo ra một phương pháp chung để giải quyết điều này với nhiều dòng. https://stackoverflow.com/a/44218468/4420543 – andras

0

có thể là phần đệm, hãy thử đặt thành 0dp

cũng có bất kỳ điều gì khác trong bố cục không?

0

Bạn có thể sử dụng.

android:layout_width="fill_parent" 

istead của

android:layout_width="wrap_content" 
0

tôi nghi ngờ vấn đề này sẽ không xảy ra nếu bạn không sử dụng văn bản in nghiêng. Trước tiên, tôi sẽ thử nghiệm và nếu sử dụng văn bản không nghiêng thì hiển thị chính xác, sau đó nó trông giống như một vấn đề kết xuất, cần làm việc xung quanh với phần đệm thừa trong TextView để cho phép không gian cho chữ in nghiêng.

0

vấn đề ở đây là thuộc tính nghiêng. Bạn phải đặt chiều rộng cụ thể cho chế độ xem văn bản của mình.

4

tôi cố định nó bằng cách thiết lập độ rộng của TextView để fill_parent thay vì wrap_content ...

0

Bạn luôn có thể tạo ra TextView tùy chỉnh mà sẽ sử dụng ví dụ font chữ này (nguyên nhân trên thực tế đây là một vấn đề với nghiêng type):

Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-LightItalic.ttf"); 
setTypeface(tf); 

Chi tiết here.

1

Đây là giải pháp của tôi: Định dạng chế độ xem và đo văn bản. Sau đó thiết lập chiều rộng của textview với 1 pixel thêm vào chiều rộng đo.

TextView textView = new TextView(this); 
    textView.setText("Text blah blah"); 
    textView.setTypeface(typeface, Typeface.BOLD_ITALIC) 
    textView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); 
    textView.setLayoutParams(new LayoutParams(textView.getMeasuredWidth() + 1, LayoutParams.WRAP_CONTENT)); 

Làm việc cho tôi. Hy vọng những trợ giúp này.

5

Ok điều này khá lạ nhưng tôi đã thay đổi từ android:maxLines="1" thành android:singleLine="true" và hiện tại văn bản không bị cắt.

+0

* Lưu ý: android: singleLine không được dùng nữa –

+0

Tôi biết rằng 'android: singleLine' không được dùng nữa, tuy nhiên trong một số trường hợp, sử dụng' android: maxLines = "1" 'sẽ khiến văn bản bị cắt. Đây rõ ràng là một lỗi. – toobsco42

Các vấn đề liên quan