跑马灯显示就是让TextView控件中的文字滚动起来,为实现跑马灯的效果,有以下几种方法:
1.调用 setMovementMethod()方法
private TextView textView1;
//向文本框中输入要显示的内容
textView1.setText(“输入要显示的内容,尽量字符长度大于显示框的宽度,否则不会滚动的”)
//跑马灯显示固定用法
textView1.setMovementMethod(LinkMovementMethod.getInstance())
该方法简单易懂,缺点是无法在显示的内容上添加链接,下面介绍可以添加链接的方法。
2.调用Html.fromHtml()方法
//当单击“北京”时,便会连接到www.baidu.com上
String html="我爱北京天安门,<a href= 'www.baidu.com'> 北京</a>天安门也爱我"
//获得链接
Html.fromHtml(html)
//输入文本框
textView1.setText(Html.fromHtml(html));
textView1.setMovementMethod(LinkMovementMethod.getInstance());
3. 利用TextView的一个属性,autoLink
在main.xml文件中
文本框内所有文字都可以链接,当然也可以选择Email、call等值)
android:autoLink="all"
android:text=“连接地址”
java文件中:
textView1.setMovementMethod(LinkMovementMethod.getInstance());
这种方法的缺点是无法在文本框上显示自己想要的字符,只能显示链接地址。
当然也可以在.JAVA文件中,输入textView1.setAutoLinkMask(Linkify.ALL),同样表示所有文字均可链接。还可以利用string.xml:
string name="link1"<a href="www.bai.com">北京</a></string>
main.xml:
android:text="@string/link1"
//跑马灯显示
android:ellipsize="marquee"
这里还应有一些细节需要注意,走马灯显示时,singleLine="true"(只允许一行)、marqueeRepeat=“true”(重复滚动)、focusableInTouchMode=“ture”(有时文本框不会滚动,需要这个属性)。
在程序中可通过setEillpsize()显式设置。
注: EditText不支持marquee这种模式