标签:无限 idt public ever fst 动效 err 注意 and
要实现跑马灯还是比较简单的。
同时有几个需要注意的点,先上代码:
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也可以设置获取焦点,但你不能保证被其他人抢走啊,所以,要重写。
标签:无限 idt public ever fst 动效 err 注意 and
原文地址:http://www.cnblogs.com/fwling/p/6249393.html