ViewPager轮播图出来指示器,无限轮播,常常也会有要求自动轮播的需求。这里记录一下轮播图的自动轮播。这篇文章在上篇《viewpager自添加指示器,无限轮播》的基础上添加的自动轮播功能
下面仍然展示一下效果图:
为了展示效果,这里加快的轮播速度。可以自己修改。
下面贴出自动轮播的代码:
我这里用了两种方法:
方法一:
其核心就是Handler+Timer;
mTimer.schedule(new TimerTask() {@Overridepublic void run() {Message message = new Message();message.what = UPDATE_VIEWPAGER;handler.sendMessage(message);}}, 1000,1000);//这里定义了轮播图切换的间隔时间Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case UPDATE_VIEWPAGER:mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);break;}}};
方法二
开一个子线程
//开启一个线程,用于循环new Thread(new Runnable() {@Overridepublic void run() {isAuto = true;while (isAuto) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}runOnUiThread(new Runnable() {@Overridepublic void run() {mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1);}});}}}).start()