您的当前位置:首页正文

Android跑马灯效果

来源:图艺博知识网

一.第一种方法
1.在TextView中设置相关属性

1. android:ellipsize="marquee" 设置跑马灯显示效果
2. android:focusable="true" 获得焦点才能滚动
3. android:marqueeRepeatLimit="-1"  设置滚动次数 1代表1次 -1代表无限循环
4. android:singleLine="true"     必须单行显示
5. android:focusableInTouchMode="true" 获得焦点才能滚动```

2.问题:
1.这种方法实现的效果不是很理想,刚进入页面的时候Title滚动效果略微卡顿
2.在切换到全屏之后在切换回竖屏状态下时,TextView的滚动效果停止了
二.第二种方法
1.写一个自定义的TextView继承TextView,重写isFocused方法,返回True,用此方法来获得焦点
1.在xml控件中写上第一种方法的1.3.4就可以了

public class MarqueeTextView extends TextView {
    public MarqueeTextView(Context context) {
        super(context);
    }

    public MarqueeTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

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

    @SuppressLint("NewApi")
    public MarqueeTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    public boolean isFocused() {
        return true;
    }
}
Top