码迷,mamicode.com
首页 > 其他好文 > 详细

继承TextView获取焦点实现跑马灯

时间:2015-08-29 20:06:58      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

 1 public class MarqueeFocuseTextView extends TextView {
 2 
 3     public MarqueeFocuseTextView(Context context, AttributeSet attrs,
 4             int defStyle) {
 5         super(context, attrs, defStyle);
 6     }
 7 
 8     public MarqueeFocuseTextView(Context context, AttributeSet attrs) {
 9         super(context, attrs);
10     }
11 
12     public MarqueeFocuseTextView(Context context) {
13         super(context);
14     }
15     
16     @Override
17     @ExportedProperty(category = "focus")
18     public boolean isFocused() {
19         //始终取得焦点
20         return true;
21     }
22     
23     @Override
24     protected void onFocusChanged(boolean focused, int direction,
25             Rect previouslyFocusedRect) {
26         //写这个方法是为了去掉父类的方法
27         //super.onFocusChanged(focused, direction, previouslyFocusedRect);
28     }
29 }

关于MarqueeText类中为什么要复写onFocusChanged()方法,那是因为如果不写,在Textview 获得焦点后,再失去焦点时 字就会停止“跑”了,所以如果想让它一直跑下去就复写onFocusChanged(),并且里面什么也不做(主要是不能调用父类的方法)

 

1 <com.zzqhfuf.mobilesafefb.views.MarqueeFocuseTextView
2         android:id="@+id/tv_index_newmessage"
3         android:layout_width="match_parent"
4         android:layout_height="wrap_content"
5         android:ellipsize="marquee"
6         android:singleLine="true"
7         android:text="点过看过千万不要错过,错过悔一生啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!" 
8         android:textColor="@color/black"
9         android:textSize="15sp"/>

 

textview显示的内容一定要大于你设置的宽度,不然无法实现跑马灯的效果

当然也可以不重新创建一个类,只需在xml中的TextView写入

 

1         android:focusable="true"
2         android:focusableInTouchMode="true"

就可以实现跑马灯的效果

 

 

 

继承TextView获取焦点实现跑马灯

标签:

原文地址:http://www.cnblogs.com/zzqhfuf/p/4769639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!