专栏首页五毛程序员ViewPager实现广告自动轮播核心代码(Handler+Thread)

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++知识点整理——持续更新

    用户1737026
  • java注解入门(含源码下载)

    用户1737026
  • java实现文件夹(包括其中的子文件夹、子文件)的复制——递归

    用户1737026
  • Linux 存储架构图

    linjinhe
  • CSS深入理解学习笔记之margin

    1、margin与容器尺寸   元素尺寸:①可视尺寸 clientWidth(标准);②占据尺寸 ?   margin与可视尺寸:①适用于没有设定width/h...

    就只是小茗
  • 力扣142——环形链表 II

    为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。

    健程之道
  • margin 属性

    margin 规定标签中四个方向的外边距属性。四个外边距属性表示分别为: margin-top, margin-right, margin-bottom,...

    Html5知典
  • box-sizing取值、属性、用途、默认值

    content-box :以盒子内容区域+padding(内边距)+border(边框)+margin(外边距); border-box : 将盒子设定为怪异...

    我不是费圆
  • 【AIDL专栏】王井东:深度融合——一种神经网络结构设计模式

    深度学习,是最近十年来才发展起来的。2006年Hinton发表在Science的文章【1】首次提出了深度学习的概念,但当时没有很多人认可深度学习。深度学习真正引...

    马上科普尚尚
  • 春天,是腾讯码农丰收的季节

    春天来了,万物复苏,又到了………… 学霸码农们丰收的季节! ? 这次丰收的“农场”是即将在美国举办的IEEE CVPR 2019(Computer Visio...

    腾讯大讲堂

扫码关注云+社区

领取腾讯云代金券