textview中有个内容过长加省略号的属性,即ellipsize
用法如下:
在xml中
android:ellipsize = "end" 省略号在结尾 android:ellipsize = "start" 省略号在开头 android:ellipsize = "middle" 省略号在中间 android:ellipsize = "marquee" 跑马灯
最好加一个约束android:singleline = "true"
当然也可以用代码语句
tv.setEllipsize(TextUtils.TruncateAt.valueOf("END")); tv.setEllipsize(TextUtils.TruncateAt.valueOf("START")); tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE")); tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好再加一个约束tv.setSingleLine(true);
不仅对于textview有此属性,对于editext也有,不过它不支持marquee
对于使用marquee即滚动显示方式的,需要当前textview获得焦点才会滚动。所以有时可能因为实际需要,textview未获得焦点或者需要多个textview都同时滚动显示时,可以采用以下办法:
因为判断textview是否处于focused状态是通过它本身isFocused()方法,这样只要此方法返回为true时,即认为处于focused的状态,就可以滚动啦。
所以可以通过继承TextView类,并override isFocused()方法来控制是否滚动咯。