ViewPager实现广告自动轮播核心代码(Handler+Thread)

ViewPager数据源是4个线性布局,每个布局里面充满一张高度固定、宽度充满父布局的图片。有4个小圆点
跟随ViewPager滑动。轮播原本我是用Timer+TimerTask的,但是问题颇多,很是郁闷。于是看了一下别人的一个仿网易新闻的例子,然后找到了相关代码阅读。原来可以使用while循环+线程休眠来实现重复执行一段代码。
1
private int currentAdsIndex=0; 2 private int viewsCount=4;//轮播广告图片数量 3 4 handler = new Handler() { 5 public void handleMessage(Message msg ) { 6 7 Toast. makeText(getActivity(), msg.what +"" , Toast.LENGTH_SHORT) 8 .show(); 9 adViewPager.setCurrentItem( msg. what); 10 }; 11 }; 12 13 14 15 new Thread(new Runnable() { 16 17 @Override 18 public void run() { 19 while ( true) { 20 try { 21 Thread. sleep(5000); 22 currentAdsIndex++; 23 if( currentAdsIndex > viewsCount-1) { 24 currentAdsIndex = 0; 25 } 26 handler.sendEmptyMessage( currentAdsIndex); 27 } catch (InterruptedException e) { 28 e.printStackTrace(); 29 } 30 } 31 } 32 }).start();
原文地址:https://www.cnblogs.com/rainmer/p/4288717.html