跑马灯效果,即TextView控件中文字自动滚动效果
如果只需要一个TextView实现跑马灯效果,只需要修改layout中对应的xml文件中的TextView的属性
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
如果需要多个TextView同时实现跑马灯效果,则需要自定义继承于TextView的子类,实现全部构造函数,并重写View的isFocused()方法,然后再修改对应layout中xml文件对应的控件(com.wdcxc.marqueetextview.MarqueeTextView)的属性
package com.wdcxc.marqueetextview;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.widget.TextView;
@SuppressLint("NewApi")
public class MarqueeTextView extends TextView {
public MarqueeTextView(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeTextView(Context context) {
super(context);
}
@Override
public boolean isFocused() {
return true;
}
}