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();