屏幕上的android textview内容

时间:2014-05-05 06:46:49

标签: android textview trim

在我的视频播放器中,我有三个文本视图(标题,电池百分比,时间)。问题是标题文本太长时修剪时间文本。如何解决这个问题?是否有任何动态调整textview长度和位置的解决方案?这是我的代码和截图---

<LinearLayout
        android:id="@+id/top_panel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="#45000000"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/title_txt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:text="abcdefghijklmnopqrstuvwxyz1234567"
            android:paddingLeft="5dp"
            android:textColor="#ffffff"
            android:textSize="15sp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/batPer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
               android:layout_marginRight="8dp"
                android:lines="1"
                android:text="100%"
                android:textSize="17sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/timetxt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="1"

                android:text="03:07AM"
                android:textColor="#ffffff"
                android:textSize="17sp"
                android:textStyle="bold" />
        </LinearLayout>
    </LinearLayout>

enter image description here

3 个答案:

答案 0 :(得分:2)

您应该将LinearLayout更改为RelativeLayout。您可以将android:ellipsize="marquee"android:ellipsize="end"分配给第一个title_txt

即使我已将包含电池百分比和计时器的LinearLayout的宽度从android:layout_width="fill_parent"更改为android:layout_width="wrap_content"

与你的标题增加或减少计时器的文本无关,百分比将保留在右侧。

尝试使用以下代码。

<RelativeLayout 
    android:id="@+id/top_panel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:background="#45000000"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/title_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/ll_timer_battery_perc"
        android:ellipsize="marquee"
        android:lines="1"
        android:marqueeRepeatLimit="marquee_forever"
        android:paddingLeft="5dp"
        android:text="abcdefghijklmnopqrstuvwxyz1234567"
        android:textColor="#ffffff"
        android:textSize="15sp"
        android:textStyle="bold" />

    <LinearLayout
        android:id="@+id/ll_timer_battery_perc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="right"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/batPer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:lines="1"
            android:text="100%"
            android:textSize="17sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/timetxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:text="03:07AM"
            android:textColor="#ffffff"
            android:textSize="17sp"
            android:textStyle="bold" />
    </LinearLayout>

</RelativeLayout>

答案 1 :(得分:1)

你正在使用android:lines =&#34; 1&#34;如果超过一行,则会使文本被修剪。如果希望文本适合textview并且所有文本都被置换

,则应删除此行或扩展为2行

答案 2 :(得分:1)

使用Weight更改此方式。

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/batPer"
            android:layout_weight=".7"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
           android:layout_marginRight="8dp"
            android:lines="1"
            android:text="100%"
            android:textSize="17sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/timetxt"
            android:layout_weight=".3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:lines="1"
            android:text="03:07AM"
            android:textColor="#ffffff"
            android:textSize="17sp"
            android:textStyle="bold" />
</LinearLayout>