1:轮播就需要定时器操作定义一个定时器:
// 定时滑动线程 new Thread(new Runnable() { @Override public void run() { while (true) { if (isContinue) {//发送消息 viewHandler.sendEmptyMessage(what.get()); what.incrementAndGet();//自动到最后的时候回到首页 if (what.get() > advPics.size() - 1) { what.getAndAdd(-advPics.size()); } // try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } }).start();
2:需要对触摸滑动的监听及添加标志位
private boolean isContinue = true; 标志位 用于手还是自动
//按下时不继续定时滑动,弹起时继续定时滑动 advPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: isContinue = false; break; case MotionEvent.ACTION_UP: isContinue = true; break; default: isContinue = true; break; } return false; } });3:viewpage的切换
private final Handler viewHandler = new Handler() { @Override public void handleMessage(Message msg) { advPager.setCurrentItem(msg.what); super.handleMessage(msg); } };