在很多的项目里都会遇到这样的需求,在主页上方实现类似可自动滑动(也可以手动滑动)的广告信息栏,主要是图片的显示和自动切换。

在网上很多博客看了很多方法,有使用Viewpager实现的,也有使用Gallery实现的,在其中定义一个定时器任务,用来切换图片,其实这些方法都是可以的。

现在我是用了一个自定义的Galleryl来实现的。效果图如下:

(形式如有雷同,纯属巧合)

(1)项目结构图:

(2)在MainActivity中,创建AdGallery的实例对象,并初始化:

public class MainActivity extends Activity implements OnAdItemClickListener{//广告栏控件private AdGallery adGallery;//广告数据private Advertisement[] data;//方法测试2中用来显示广告栏的容器private RelativeLayout adContainer;//针对AdGallery的封装private AdGalleryHelper adGalleryHelper;//是否自动播放广告图private boolean isAutoSwitch = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);makeInitData();
//      realizeFunc1();realizeFunc2();}/*** 测试:单独使用AdGallery的布局作为控件显示*/public void realizeFunc1(){adGallery = (AdGallery) findViewById(R.id.adGallery);//进行初始化参数adGallery.init(data, 2000, new OnGallerySwitchListener() {@Overridepublic void onGallerySwitch(int position) {System.out.println("onGallerySwitch position=>"+position);}},isAutoSwitch);//设置广告栏的点击事件adGallery.setAdOnItemClickListener(this);}/*** 测试:使用AdGlleryHelper来实现对外提供自定义的布局视图*/public void realizeFunc2(){adContainer = (RelativeLayout) findViewById(R.id.ad_container);adGalleryHelper = new AdGalleryHelper(this, data, 2000,isAutoSwitch);//获取对外的AdGallery布局adContainer.addView(adGalleryHelper.getLayout());adGallery = adGalleryHelper.getAdGallery();adGallery.setAdOnItemClickListener(this);}/*** 构建临时的模拟广告数据*/private void makeInitData(){Advertisement ad1 = new Advertisement("http://i.mmcdn.cn/simba/img/T1TF7_Fu4bXXb1upjX.jpg","http://click.mz.simba.taobao.com/ecpm?spm=1.6659421.915625793.3.0TBMP7&e=nYH%2BKFPd133YWY1C04TxDF3S%2F837JUxFOG6WduKKDT84tYVPvHNQKfbMyjgDBdBNaaKi0tn9u53uXrSgpU6oEfPkBgURfKOLUK7RDtIZydUyXElRAMLwo5FiZpwDPce9eExSU4v7XFq7oPqgjtktJTct7HIHKFBICVQjKtUM3UNYgWSKv80kDNUEZrNp6EEl&u=http%3A%2F%2Fad.doubleclick.net%2Fddm%2Fclk%2F281149676%3B107971445%3Br%3Fhttp%3A%2F%2Fchevrolet.tmall.com%2F&k=193","汽车广告");Advertisement ad2 = new Advertisement("http://i.mmcdn.cn/simba/img/T10jM6FCdbXXb1upjX.jpg","http://click.mz.simba.taobao.com/ecpm?spm=1.6659421.915625793.14.0TBMP7&e=YGNFxW6nTsHYWY1C04TxDF3S%2F837JUxFOG6WduKKDT%2BSLxQ3q7KAxgEayugzqMrcaaKi0tn9u51x8pPsvOqsRJtwz2O4yMfOUK7RDtIZydUyXElRAMLwo4z9EHH1hc4AoRsD%2BWoXRtk4%2FiEyiIj3wP3HD9f4XfaprJENpCr4W%2FoYUpKT%2FBi2RyHpjADIzGYa&u=http%3A%2F%2Fdetail.ju.taobao.com%2Fhome.htm%3Fitem_id%3D37484036990%26id%3D10000002347249&k=193","聚划算推广");Advertisement ad3 = new Advertisement("http://i.mmcdn.cn/simba/img/T164oLFEteXXb1upjX.jpg","http://click.mz.simba.taobao.com/ecpm?spm=1.6659421.915625793.13.0TBMP7&e=oapCTUxRLObYWY1C04TxDF3S%2F837JUxFOG6WduKKDT%2FD3tdr%2BPviU7sn04msoiNGaaKi0tn9u523Z2ZPdYtM8Nw9MFujznjQUK7RDtIZydUyXElRAMLwo1AEKK8jEe5%2BspPvpwDPwef33gR6yLkawj%2FOzSD1g4ZitGue3yWVkVwVa8xYNBw1ixbWvZPrzTlR&u=http%3A%2F%2Fdetail.ju.taobao.com%2Fhome.htm%3Fitem_id%3D36374857410%26id%3D10000002426125&k=193","除螨神器");Advertisement ad4 = new Advertisement("http://i.mmcdn.cn/simba/img/T1CR.HFBNXXXartXjX.gif","http://click.mz.simba.taobao.com/ecpm?spm=1.6659421.915625793.13.0TBMP7&e=oapCTUxRLObYWY1C04TxDF3S%2F837JUxFOG6WduKKDT%2FD3tdr%2BPviU7sn04msoiNGaaKi0tn9u523Z2ZPdYtM8Nw9MFujznjQUK7RDtIZydUyXElRAMLwo1AEKK8jEe5%2BspPvpwDPwef33gR6yLkawj%2FOzSD1g4ZitGue3yWVkVwVa8xYNBw1ixbWvZPrzTlR&u=http%3A%2F%2Fdetail.ju.taobao.com%2Fhome.htm%3Fitem_id%3D36374857410%26id%3D10000002426125&k=193","春季新款");Advertisement ad5 = new Advertisement("http://gtms04.alicdn.com/tps/i4/T1D.I0FpxeXXazuKP7-520-280.jpg","http://click.mz.simba.taobao.com/ecpm?spm=1.6659421.915625793.13.0TBMP7&e=oapCTUxRLObYWY1C04TxDF3S%2F837JUxFOG6WduKKDT%2FD3tdr%2BPviU7sn04msoiNGaaKi0tn9u523Z2ZPdYtM8Nw9MFujznjQUK7RDtIZydUyXElRAMLwo1AEKK8jEe5%2BspPvpwDPwef33gR6yLkawj%2FOzSD1g4ZitGue3yWVkVwVa8xYNBw1ixbWvZPrzTlR&u=http%3A%2F%2Fdetail.ju.taobao.com%2Fhome.htm%3Fitem_id%3D36374857410%26id%3D10000002426125&k=193","特色中国美食");data = new Advertisement[]{ad1,ad2,ad3,ad4,ad5};}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}/*** 实现AdGallery的OnAdItemOnClickListener*/@Overridepublic void setItemClick(int position) {System.out.println("you had clicked position="+position);//调用系统浏览器访问对应广告图的链接Intent intent= new Intent();        intent.setAction("android.intent.action.VIEW");    Uri content_url = Uri.parse(data[position].getLinkUrl());   intent.setData(content_url);  startActivity(intent);}@Overrideprotected void onDestroy() {if(adGalleryHelper!=null){adGalleryHelper.stopAutoSwitch();}super.onDestroy();}
}

综上的使用并测试,完成了对AdGallery的功能要求,能够自动的切换广告,并能无限滑动。

具体代码:请点击这里查看。

[Android初级]可自动切换、无限滑动的广告栏的实现相关推荐

  1. android功能_自动切换APP图标,节假日图标自动变化

    目标: 实现切换APP图标功能.即不同的时间显示不同的App Icon. 准备知识: 要实现切换APP图标的功能,就需要对配置在AndroidManifest.xml中的 < activity- ...

  2. android听筒+扬声器自动切换,Android 扬声器与听筒的切换

    本文主要实现扬声器与听筒的切换.而android中实现对音量和振铃模式的控制主要通过AudioManager类来实现. AudioManager类 关于喇叭与听筒的主要方法 1. AudioManag ...

  3. android听筒+扬声器自动切换,Android VOIP中的扬声器、听筒切换

    在做voip通话的过程中,会频繁使用到免提播放和听筒接听的功能,而如何正确的切换,和AudioManager的调度是分不开的,直接上代码: //获取AudioManager服务 private val ...

  4. android 静态图片自动切换,Android静态图片人脸识别的完整demo(附完整源码)

    Android静态图片人脸识别的完整demo(附完整源码) 来源:互联网 作者:佚名 时间:2015-03-24 20:07 本文介绍了android静态识别人脸并进行标记人眼位置及人脸框的完整dem ...

  5. ViewPager(一屏多页、无限滑动、自动切换)

    一.简介 前段时间在腾讯视频中看到一个效果,是一个广告轮播,然后一屏还显示了多页.看着这个效果看着还不错,就自己实现了下. 国际惯例先上效果图,如下:(虽然界面比较简陋,但是功能是全的) ====== ...

  6. 高仿优酷Android客户端图片左右滑动(自动切换)

    本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能 ...

  7. android imageview 图片切换动画,模仿优酷Android客户端图片左右滑动(自动切换)效果...

    本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能 ...

  8. Android 滑动切换(首页展示,图片、新闻自动切换,循环切换,自动和手动)

    最近做的项目,要用到滑动切换的效果,就是类似新闻客户端的图片一张一张的自动切换或者手动滑动切换,于是就搜集了一下资料,使用两种方式实现这样的效果,分别是ViewFlipper和ViewPager.这两 ...

  9. Android多效果轮播器/Banner实现,支持无限轮播、自动切换、指示器动画

    2019.9.12 已封装成控件扔到GitHub上https://github.com/kjt666/Banner 开篇 接上篇文章动手实现你的ViewPager切换动画 本次内容是利用ViewPag ...

最新文章

  1. jemeter多场景混合案例_Redis 混合存储最佳实践指南
  2. SVM-支持向量机原理详解与实践之三
  3. windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)
  4. 电子设计从零开始 第一章总结
  5. java 持续集成工具_Jenkins-Jenkins(持续集成工具)下载 v2.249.2官方版--pc6下载站
  6. [转]WCF绑定选择
  7. (13)FPGA面试技能提升篇(Shell脚本)
  8. 微服务——最热门的架构
  9. java报错空指针异常_分析使用Spring Boot进行单元测试时,报出空指针异常
  10. static在内存层面的作用_static关键字总结
  11. 计算机Word2010在线做题,Word2010试题练习题库(答案).doc
  12. SAP 财务-统驭科目
  13. 通过DCMM评估对企业有什么作用
  14. Trivial、Non-Trivial和POD类型
  15. 中职中职计算机英语试题,中职英语试卷及参考答案
  16. 60项基于深度学习的SLAM顶会开源方案汇总(上篇)
  17. Android-涂鸦板
  18. 05_网站日志数据分析
  19. stm32利用外部中断控制小台灯
  20. 基于JAVA跨境电商网站计算机毕业设计源码+数据库+lw文档+系统+部署

热门文章

  1. Xshell连接虚拟机错误:Could not connect to ‘192.168.133.100‘ (port 22): Connection failed.
  2. 什么是客户端证书?(ssl证书)
  3. 鼻纹、静脉、虹膜……奇奇怪怪的生物识别技术有哪些?
  4. 使用tableau绘制出超市每天销售额的日历图
  5. 史上最牛叉的程序员招聘信息
  6. KFC Crazy Thursday
  7. 三菱FX1N PLC 485与三菱变频器modbus通讯可直接拿来实用了,三菱FX PLC与三菱变频器通讯
  8. 10个最顶尖的专业服装设计软件(外国)
  9. 500以内蓝牙耳机良心推荐,性价比超高的五款超值蓝牙耳机推荐
  10. 男士穿着西装应知事项