2013-06-08 29 views
6

Tôi đang viết một ứng dụng Android và đôi khi một vài pixel cuối cùng của văn bản đang bị cắt ngắn. Nó đang xảy ra trên một vài điều khiển khác nhau trong các phần khác nhau của ứng dụng. Điều này xảy ra trên cả Trình giả lập và trên điện thoại của tôi.Văn bản thiếu vài pixel cuối cùng

Dưới đây là một phần của bố cục, tôi đã thêm màu nền, do đó bạn có thể thấy rằng cách bố trí cha mẹ là chiếm toàn bộ chiều dài nhưng độ xem văn bản là không gói bối cảnh một cách chính xác enter image description here

Sau khi ' r 'ở phía dưới thì rõ ràng là một khoảng trống, nhưng' a 'trên đỉnh là hơi cắt ngắn. Đây là cách bố trí

<LinearLayout android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_gravity="center" android:background="#fbff18"> 

    <TextView android:id="@+id/SongRowSongName" 
     android:gravity="left" 
     android:layout_gravity="left" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:singleLine="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:background="#ff1217"/> 

    <TextView android:id="@+id/SongRowArtistName" 
     android:gravity="left" 
     android:layout_gravity="left" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:singleLine="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:linksClickable="false" 
     android:background="#ff1217" android:clickable="false"/> 
</LinearLayout> 

Tôi biết tôi chỉ có thể đặt chiều rộng thành full_parent trên chế độ xem văn bản và tôi không hiểu tại sao tôi phải làm như vậy. Địa điểm chính khác đang diễn ra là trong tabhost của tôi. enter image description here

intent = new Intent().setClass(this, ProfileActivity.class); 
spec = tabHost.newTabSpec("profile").setIndicator("Profiles", 
    res.getDrawable(R.drawable.ic_tab_profile)) 
    .setContent(intent); 
tabHost.addTab(spec); 

và đây là những gì tôi đang sử dụng là chọn hình nền

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When selected, use grey --> 
    <item android:drawable="@drawable/profile_grey" android:state_selected="true" /> 
    <!-- When not selected, use white--> 
    <item android:drawable="@drawable/profile_white" /> 
</selector> 

Nó chỉ không có ý nghĩa với tôi lý do tại sao khi có rất nhiều không gian trong các phụ huynh hiện nó không bọc nội dung chính xác.

+0

Bạn đang làm điều gì đó hài hước với phông chữ mặc định của mình? Dường như nó đang được đo không chính xác. – HalR

+0

Đối với những gì nó có giá trị tôi chỉ cần sao chép mã xem văn bản và tôi không có vấn đề này trên 4,2 thiết bị hoặc giả lập. Bạn đang thử nghiệm cấp API nào? –

+0

@ HALR, tôi đã không thực hiện bất kỳ điều gì với phông chữ mà tôi có thể nghĩ đến, bạn có đề xuất trong ứng dụng hoặc cài đặt trên điện thoại của tôi không? – Jason

Trả lời

0

Đối với tôi vấn đề là thiết lập này trong AndroidManifest:

<supports-screens android:anyDensity="false"> 

Sau khi nhận ra đây là vấn đề tôi phát hiện ra rằng các tài liệu nêu rõ: "Đối với các ứng dụng có hỗ trợ Android 1.6 (API cấp 4) trở lên, điều này là "true" theo mặc định và bạn không nên đặt "false" trừ khi bạn hoàn toàn chắc chắn rằng ứng dụng của bạn cần thiết để hoạt động. "

http://developer.android.com/guide/topics/manifest/supports-screens-element.html#any

1

Nó chỉ ra vấn đề là vì tôi đã không chỉ định một minSdkVersion trong AndroidManifest.

<uses-sdk android:minSdkVersion="4"/> 

Nếu tôi không có gì, có minSdkVersion < = 3 thì vấn đề xảy ra.

Chúc mừng tất cả,

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