文本缺少最后几个像素

时间:2013-06-08 05:45:57

标签: android

我正在编写一个Android应用程序,有时文本的最后几个像素被截断。它发生在应用程序各个部分的几个不同控件上。这种情况发生在模拟器和手机上。

下面是布局的一部分,我添加了背景颜色,因此您可以看到父布局占用了全部长度,但文本视图未正确包装上下文 enter image description here

在底部的'r'之后显然是一个间隙,但顶部的'a'略微截断。这是布局

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

我知道我可以在textview上将宽度设置为full_parent,但这只是问题的一个实例,我不知道为什么我应该这样做。 它正在发生的另一个主要地方是我的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);

这就是我用作背景图像选择器

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

这对我来说没有意义,为什么当父母有足够的空间时,它没有正确地包装内容。

2 个答案:

答案 0 :(得分:1)

事实证明这个问题是因为我没有在AndroidManifest中指定minSdkVersion。

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

如果我没有任何东西,那么minSdkVersion为&lt; = 3则会出现问题。

干杯,

答案 1 :(得分:0)

对我来说问题是AndroidManifest中的这个设置:

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

在意识到这是问题后,我发现文档明确指出: “对于支持Android 1.6(API级别4)及更高版本的应用程序,默认情况下这是”true“,除非您绝对确定应用程序必须正常工作,否则不应将其设置为”false“。”

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