在具有可变高度的TextView中拟合文本

时间:2013-07-15 13:11:18

标签: android android-layout textview

在RelativeLayout中,我有一个ImageView和一个TextView。

  • ImageView的高度设置为wrap_contents,宽度设置为fill_parent。
  • ImageView是动态加载的,因此图像高度最终也是ImageView高度。
  • TextView在ImageView下面对齐,宽度为fill_parent,高度设置为fill_parent。
  • TextView与父底部对齐。
  • TextView的ellipsize设置为结束。

当我为TextView设置较长的文本时,文本似乎在没有任何椭圆可见的情况下在屏幕上运行,而我希望只有尽可能多的空间可见的文本,然后出现椭圆。

这是可以实现的吗?

请注意,我也不能设置最大行数,因为我不知道TextView的可用高度是多少以及除非ImageView的图像是通过后台线程中的HTTP调用加载的。 / p>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#eeeeee"
    android:fitsSystemWindows="true" >

    <ImageView
        android:id="@+id/news_image"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/loadingpic" />


    <TextView
        android:id="@+id/excerpt"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="false"
        android:layout_below="@id/heading"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:clickable="true"
        android:ellipsize="end"
        android:freezesText="true"
        android:inputType="none"
        android:linksClickable="true"
        android:longClickable="true"
        android:overScrollMode="never"
        android:text="TextView"
        android:textColor="#333333"
        android:textSize="16sp" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

Elipsize属性仅在设置maxLine或singleLine为true时才有效。 请尝试一下。

答案 1 :(得分:0)

您是否尝试过添加

  android:scrollHorizontally = "true"

请参阅:How to Add an ellipsis(...) in a TextView