对方想着做一个跑马灯效果,而且要求内部的文字区域可以点击,我第一想到的就是RecyclerView来做,只要把getItemCount的返回值设置成无限大,就能实现循环滚动效果,滚动可以用scrollBy来实现。
先看MarqueeView类,继承与RecyclerView:
public class MarqueeView extends RecyclerView {
Thread thread = null;
AtomicBoolean shouldContinue = new AtomicBoolean(false);
Handler mHandler;
public MarqueeView(Context context) {
super(context);
}
public MarqueeView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
private void init() {
//主线程的handler,用于执行Marquee的滚动消息
mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {