Android杂谈---TextView的跑马灯效果

下面的是转载自农民伯伯的文章,但是有些属性还不是很清楚,所以又在网上查了一下相关属性的作用,以备后用

http://www.cnblogs.com/over140/archive/2010/08/20/1804770.html

 

先上代码和效果

 

<?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>
 

 


Android杂谈---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监听器的回调方法。
    任何时候用户接触方向键或者滚动轨迹球时,该设备将退出触摸模式,并聚集焦点,用户可以恢复与用户界面的键盘交互,而不必在屏幕上。触摸模式的状态是由整个系统来维持的(all windows and activities),要查询目前所处的状态,你可以调用isInTouchMode()方法来获得,看看设备目前是否处于触摸模式。

 

你可能感兴趣的:(textview)