2013-06-08 14 views
6

Piszę aplikację dla systemu Android, a niektóre ostatnie piksele tekstu są obcięte. Dzieje się to na kilku różnych kontrolach w różnych częściach aplikacji. Dzieje się tak zarówno na Emulatorze, jak i na moim telefonie.Tekst brakuje kilka ostatnich pikseli

Poniżej jest częścią układu, dodałem kolory tła, dzięki czemu można zobaczyć, że układ rodzic bierze się na całej długości, ale widok tekst nie jest zawijany kontekst poprawnie enter image description here

Po ' r 'na dole to oczywiście luka, ale "a" na górze jest lekko ścięte. Oto układ

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

wiem, może po prostu ustawić szerokość do full_parent na TextView, ale to jest tylko jedna instancja problemu i ja nie rozumiem, dlaczego muszę. Drugim głównym miejscem, w którym się znajduje, jest mój tabhost. 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); 

i to co używam jako selektor obrazu tła

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

To po prostu nie ma sensu dla mnie, dlaczego kiedy tam jest dużo miejsca na rodzica to nie Zawijanie treści poprawnie.

+0

Czy robisz coś śmiesznego z domyślną czcionką? Wydaje się, że jest źle mierzony. – HalR

+0

Po to, co jest warte, właśnie skopiowałem kod tekstowy i nie mam tego problemu na urządzeniu 4.2 lub emulatorze. Na jakim poziomie interfejsu API testujesz? –

+0

@HalR, Nie zrobiłem nic z czcionkami, które mogę wymyślić, czy sugerujesz w aplikacji lub ustawieniach na moim telefonie? – Jason

Odpowiedz

0

Dla mnie problemem było to ustawienie w AndroidManifest:

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

Po realizacji tego był problem I okazało się, że dokumentacja wyraźnie stwierdza: „W przypadku aplikacji, które obsługują Android 1.6 (poziom API 4) i wyższy, domyślnie jest to "prawdziwy" i nie należy ustawiać go jako "fałsz", chyba że masz całkowitą pewność, że aplikacja jest niezbędna do działania. "

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

1

Okazuje się, że problem polegał na tym, że nie określiłem wartości minSdkVersion w AndroidManifest.

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

Jeśli nie mam nic, z mają minSdkVersion z < = 3, a następnie pojawia się problem.

Cheers wszystkim

Powiązane problemy