当我们在使用TextView时,很有可能文字显示不下。如果不进行调整设置的话,显示就会变得很难看。我读了这篇问答之后,知道了如何设置,再加上我自己查找了其它的资料和进行实践,总结为这篇博文。
在xml中TextView里进行设置:
android:ellipsize="start" //省略号在开头
android:ellipsize="middle" //省略号在中间
android:ellipsize="end" //省略号在结尾
android:ellipsize="marquee" //跑马灯显示
然而在使用ellipsize属性时必须要添加以下属性:
android:layout_width="wrap_content"
还有就是最好像以下一样把行数限定为一行,这样显示的更稳定、美观。
android:singleLine="true"
在代码中进行设置:
public void setEllipsize (TextUtils.TruncateAt where)
以上方法需要传入TextUtils.TruncateAt作为参数
public enum TruncateAt {
START,
MIDDLE,
END,
MARQUEE,
/**
* @hide
*/
END_SMALL
}
所以说可以传入以下四种参数:
TextUtils.TruncateAt.START
TextUtils.TruncateAt.MIDDLE
TextUtils.TruncateAt.END
TextUtils.TruncateAt.MARQUEE
与在xml中的设置完全对应,当然也可以使用以下方法限定单行
public void setSingleLine(boolean singleLine)
但是,当使用android:ellipsize=”marquee” 或者setEllipsize (TextUtils.TruncateAt.MARQUEE)时,在TextView里并没有有跑马灯的效果,只是显示成末尾省略号的形式。于是,我们还要调用以下方法进行设置:
public void setSelected(boolean selected)
只要将其设置为true,跑马灯的效果就出现了。