ViewPager的自動輪播

ViewPager輪播圖出來指示器,無限輪播,經常也會有要求自動輪播的需求。這裏記錄一下輪播圖的自動輪播。這篇文章在上篇《viewpager自添加指示器,無限輪播》的基礎上添加的自動輪播功能 segmentfault

下面仍然展現一下效果圖:ide

爲了展現效果,這裏加快的輪播速度。能夠本身修改。spa

20161014173356819

下面貼出自動輪播的代碼:
我這裏用了兩種方法:線程

方法一:

其核心就是Handler+Timer;code

mTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = UPDATE_VIEWPAGER;
                handler.sendMessage(message);
            }
        }, 1000,1000);//這裏定義了輪播圖切換的間隔時間

 Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case UPDATE_VIEWPAGER:
                    mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);
                    break;
            }
        }
    };

方法二

開一個子線程get

//開啓一個線程,用於循環
        new Thread(new Runnable() {
            @Override
            public void run() {
                isAuto = true;
                while (isAuto) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                                  mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1);
                        }
                    });
                }
            }
        }).start()
相關文章
相關標籤/搜索