首先自定义一个View继承自ViewPager
public class BannerView extends ViewPager
然后定义几个需要用到的东西
private static final int AUTO_SCROLL = 1001;
private Handler mHander;
private ScheduledExecutorService mScheduledExecutorService;
最后写一个方法用于启动轮播
顺便写一个Runnable接口用于发送消息
public void autoStart() {
mHander = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == AUTO_SCROLL) {
if (getCurrentItem() + 1 >= BannerMessage.getCount()) // 这里是数据的总数,如果超过就切回到第一个
setCurrentItem(0, true);
else
setCurrentItem(getCurrentItem() + 1, true);
}
}
};
mScheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
mScheduledExecutorService.scheduleWithFixedDelay(new PagerTask(), 4, 4, TimeUnit.SECONDS);
}
private class PagerTask implements Runnable {
@Override
public void run() {
Message message = mHander.obtainMessage();
message.what = AUTO_SCROLL;
mHander.sendMessage(message);
}
}
我们是用ScheduledExecutorService 这个类来计时,不知道的可以百度下这个类