解决android的跑马灯频繁刷新的问题

先贴一下跑马灯效果的代码,这里我是继承的TextView:

public class MarqueeTextView extends AppCompatTextView {

    public MarqueeTextView(Context context) {
        this(context,null);
    }

    public MarqueeTextView(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(context);
    }

    private void initView(Context context) {
        this.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        this.setSingleLine(true);
        this.setMarqueeRepeatLimit(-1);
    }

    @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;
    }
}

解决android的跑马灯频繁刷新的问题_第1张图片

 有时候跑马灯view会随着进度条每秒刷新,导致文本没显示全又从头开始滚动了。处理这个问题,目前我的解决办法是:在跑马灯view外层再加一层LinearLayout。

 

            
        

你可能感兴趣的:(android,java)