首页 > 代码库 > Android-TextView跑马灯效果

Android-TextView跑马灯效果

要实现跑马灯还是比较简单的。

同时有几个需要注意的点,先上代码:

 1 public class MTView extends TextView {
 2 
 3 
 4     public MTView(Context context) {
 5         super(context);
 6     }
 7 
 8     public MTView(Context context, AttributeSet attrs) {
 9         super(context, attrs);
10     }
11 
12     public MTView(Context context, AttributeSet attrs, int defStyleAttr) {
13         super(context, attrs, defStyleAttr);
14     }
15 
16     public MTView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
17         super(context, attrs, defStyleAttr);
18     }
19 
20     @Override
21     public boolean isFocused() {
22         return true;
23     }
24 }
1 <me.fwl.MTView
2         android:layout_width="120dp"
3         android:layout_height="20dp"
4         android:layout_centerInParent="true"
5         android:ellipsize="marquee"
6         android:gravity="center_vertical"
7         android:singleLine="true"
8         android:marqueeRepeatLimit="marquee_forever"
9         android:text="Android中重写TextView实现 跑马灯 最简单的方法" />

需要注意的是:

1,ellipsize,这个属性表示过长的时候怎么处理,start表示只显示开头,middle表示截取中间的一段,end表示取后面这一段,marquee表示跑马灯的滚动效果

2,singleLine ,这个属性是必须要设置的。如果可以多行的,你怎么跑?用脚指头都可以想明白。

3,marqueeRepeatLimit,表示重复的次数,可以直接传一个int的值。传入marquee_forever 和 -1 表示无限次循环。

4,要获取焦点,这里采取的是,重写TextView的isFocus() 方法来控制其焦点,xml也可以设置获取焦点,但你不能保证被其他人抢走啊,所以,要重写。

Android-TextView跑马灯效果