public class AlwaysMarqueeScrollView extends TextView { // com.duopin.app.AlwaysMaguequeScrollView public AlwaysMarqueeScrollView(Context context) { super(context); // TODO Auto-generated constructor stub } public AlwaysMarqueeScrollView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public AlwaysMarqueeScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } @Override public boolean isFocused() { return true; } @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { // TODO Auto-generated method stub // fobid call parent constructor // super.onFocusChanged(focused, direction, previouslyFocusedRect); }}
关于MarqueeText类中为什么要复写onFocusChanged()方法,那是因为如果不写,在Textview 获得焦点后,再失去焦点时 字就会停止“跑”了,所以如果想让它一直跑下去就复写onFocusChanged(),并且里面什么也不做(主要是不能调用父类的方法)
XML引用:
<com.app.AlwaysMarqueeScrollView android:id="@+id/lunar_txtv" android:gravity="center" android:layout_width="80dip" android:layout_height="wrap_content" android:text="@string/hello" android:ellipsize="marquee" android:scrollHorizontally="true" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:focusable="true" />