void android.widget.TextView.setEllipsize(TruncateAt where)
public void setEllipsize (TextUtils.TruncateAt where)
当文本长于视图时,可用ellipsize()方法进行设置以显示完整的文本,而不是在中间截断原来的文本。您可能还想要用setSingleLine()或setHorizontallyScrolling(bool)来限制为单行文本。可以使用null关闭ellipsize。如果setMaxLines(int)被用来设置两行或两行以上的文本,只有END和MARQUEE被ellipsize方法支持(其他ellipsiz类型将不会做任何事情)。
相关xml属性:android:ellipsize
如果设置了,则必须为下列的值之一:
constant | value |
none | 0 |
start | 1 |
middle | 2 |
end | 3 |
marquee | 4 |
与之相关的方法TextUtils.TruncateAt.flags的参数flags如下
public static final TextUtils.TruncateAt END
public static final TextUtils.TruncateAt MARQUEE
public static final TextUtils.TruncateAt MIDDLE
public static final TextUtils.TruncateAt START
测试后发现参数flags作用如下:
当文本长度超过View时,END表明从文本开始截取view最大可以显示的宽度,不可见的部分将无法看到,也无法滑动span去查看。MARQUEE设置走马灯效果(常常配合setMarqueeRepeatLimit()使用),不用多说。START表示:取得文本的全部长度,不可见部分(即超出view部分)可以用手滑动span进行查看.与MIDDLE类似。
下面是一个例子:
tv.setEllipsize(TextUtils.TruncateAt.MARQUEE);
tv.setMarqueeRepeatLimit(4);
设置当文本过长时(超过tv文本域),用跑马灯的方式显示文本,并设置重复次数为4次。