TextView的跑马灯效果

先上代码和效果

<?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       >   <TextView          android:layout_width="100px"         android:layout_height="wrap_content"         android:text="跑马灯效果:北京又开始下大雨了,看海!"       android:textColor="@android:color/white"       android:focusable="true"       android:ellipsize="marquee"       android:marqueeRepeatLimit="marquee_forever"       android:focusableInTouchMode="true"       android:scrollHorizontally="true"       />   </LinearLayout>  

TextView的跑马灯效果

为什么android:layout_width只有100px呢,而android:text又那么长呢?跑马灯效果其实就是在有限的长度里显示完比该长度长的内容,正如代码中的text是“跑马灯效果:北京又开始下大雨了,看海!”,它会循环的显示

另外,如果没有方向键和滚动球的话,即使设置了跑马灯的效果,也不能够看到效果,因为必须在当前的View上得到焦点后才能可能到效果。

下面在说说里面的拿几个不明白的属性

1、android:ellipsize:这就是跑马灯的设置,作用是当文字过长的时候,该控件如何显示所有的文字。

它有如下的选项:

(1)start:省略号显示在开头

(2)end:省略号显示在结尾

(3)middle:省略号显示在中间

(4)marguee:以跑马灯的方式显示(横向移动)

2、android:margueeRepeatimit:在ellipsize指定marques的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次循环

3、android:focusable=”true”:设置是否可聚焦。

4、android:focusableInTouchMode=”true”:设置是否触摸模式。

5、android:scrollHorzontally=”true”:设置文本超出TextView长度的情况下,是否出现横拉条

关于Touch Mode

当用户在使用方向键或轨迹球浏览用户界面时,有必要给于一个焦点在可操作的组件上(如一个Button),使用户可以看到它将接受输入命令。如果设备有触摸功能,那么,当用户与界面的交互就不再需要有一个高亮在组件上,或一个焦点在view上,因此,模式的互动名为"触摸模式"。对于一个触摸设备,一旦有用户接触屏幕时,该设备将进入触摸模式.在点触某个View后,只有的它的方法isFocusableInTouchMode()返回为真时,才会有聚集焦点,如文本编辑工具。其他的界面只可以点触,但不会聚集焦点(高亮),如button 被点触时就不会聚集焦点,当它被按下时只会调用on-click监听器的回调方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjgpy.html