Handler+viewPager实现图片轮播

来源:互联网 发布:开源淘宝客 导入 编辑:程序博客网 时间:2024/05/15 18:23

实现图片轮播的主要方法是:

viewPager.setcunrrentItem();

viewPager.setCurrentItem((viewPager.getCurrentItem()+1)%viewPager.getAdapter().getCount());

通过求余的算法即可以完成 图片的轮播。

那么定时的通知图片切换播放就成了重点,我们这里采用:

通过查看源码,我们需要知道:handlercallback方式分发消息,本质上是如果没有runnable对象则用hanldermassege,如果有则用run方法处理

没有子线程的事。(都是运行在主线程的)runOnUiThread同样也是用handlercallback方式发消息的。

Handler.postDelayed的方式 开启轮播:

 handler=new Handler();        //利用handler发送延时消息这个线程无关,完成的是runnbale接口中的run方法         //延时后执行一次自己在方法中不断的执行自己        handler.postDelayed(new Runnable() {            @Override            public void run() {                //ListView获取调用四个方法的方式通过控件获取Adapter调用方法                  viewPager.setCurrentItem((viewPager.getCurrentItem()+1)%viewPager.getAdapter().getCount());                  handler.postDelayed(this,1000);                //重新执行一遍自己。            }        }, 1000);

通过下面这个方法将消息和回调移除的方式停止轮播:

handler.removeCallbacksAndMessages(null);

最后还要为pageAdapter集合中的view设置点击和触摸事件在adapter的instantiateItem方法中设置即可,注意按下要停止轮播抬起要开启轮播!


0 0