以前做过跑马灯的需求,今天又遇到了,再此mark下。
自定义TextView:
package com.adups.fota;
import android.content.Context;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* Created by wilson on 2017/5/31.
*/
public class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
createView();
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
createView();
}
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
createView();
}
private void createView() {
setEllipsize(TextUtils.TruncateAt.MARQUEE);
setMarqueeRepeatLimit(-1);
setFocusableInTouchMode(true);
}
@Override
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
if (focused) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
}
@Override
public void onWindowFocusChanged(boolean focused) {
if (focused) {
super.onWindowFocusChanged(focused);
}
}
@Override
public boolean isFocused() {
return true;
}
}
布局引用:
<com.adups.fota.MyTextView
android:singleLine="true"
通过复写isFocused()为true就可以实现多个TextView同时跑马灯的效果