天天看点

android:ellipsize = "marquee" 跑马灯,TextView设置android:ellipsize=marquee不滚动

今天发现android开发中有一个android:ellipsize=marquee,这个感觉像html中的marquee功能,可以实现滚动效果,于是测试了一下,结果不行呀,后来百度了一下解决办法,下面大家一起来看看。

若要让TextView里的文本滚动,必须满足以下几个因素:

1,TextView里文本宽度超过TextView的宽度

2,android:ellipsize="marquee"

3,只有在TextView获取到焦点时,才会滚动.所以加上android:focusableInTouchMode="true" android:focusable="true"

最容易忽略的是第三条.

滚动重复次数设置:

android:marqueeRepeatLimit="marquee_forever"

看一个TextView属性android:ellipsize实现跑马灯效果

Android系统中TextView实现跑马灯效果,必须具备以下几个条件:

1、android:ellipsize=”marquee”

2、TextView必须单行显示,即内容必须超出TextView大小

3、TextView要获得焦点才能滚动

XML代码:

android:ellipsize="marquee", android:singleLine="true"

Java代码:

mTVText.setText("哼唱接撒砥砺风节雷锋精神,很长很长很长很长很长很长的数据");

mTVText.setSingleLine(true);

mTVText.setEllipsize(TruncateAt.MARQUEE);

PS: TextView.setHorizontallyScrolling(true); //让文字可以水平滑动

TextView还可以设置跑马灯效果的滚动次数,如下:

XML代码设置:

android:marqueerepeatlimit="1"。1代表1次,-1代表无限循环。

Java代码设置:

mTVText.setMarqueeRepeatLimit(-1);