其实这是一个非常简单的效果:
1、如果TextView中的文字过长,那么超出显示范围的文字以...显示
2、如果TextView获得了焦点,那么其中的文字以循环滚动的方式显示
实现方式如下:
1、自定义一个TextView,关键是重写isFocused()方法,使其始终返回true:TextView textView = new TextView (context) {
@Override
public boolean isFocused() {
return true;
}
};
2、设置该TextView为单行显示,并且可获得焦点
textView.setSingleLine(true);
textView.setFocusable(true);
3、当焦点落在该TextView时,设置该TextView的滚动效果
textView.setEllipsize(TruncateAt.MARQUEE); //走马灯样式
textView.setMarqueeRepeatLimit(-1); //无限循环
4、当焦点离开该TextView时,取消该TextView的滚动效果
textView.setEllipsize(TruncateAt.END); //尾部无法显示的文字以...表示