[Android初级]可自动切换、无限滑动的广告栏的实现
在很多的项目里都会遇到这样的需求,在主页上方实现类似可自动滑动(也可以手动滑动)的广告信息栏,主要是图片的显示和自动切换。
在网上很多博客看了很多方法,有使用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初级]可自动切换、无限滑动的广告栏的实现相关推荐
- android功能_自动切换APP图标,节假日图标自动变化
目标: 实现切换APP图标功能.即不同的时间显示不同的App Icon. 准备知识: 要实现切换APP图标的功能,就需要对配置在AndroidManifest.xml中的 < activity- ...
- android听筒+扬声器自动切换,Android 扬声器与听筒的切换
本文主要实现扬声器与听筒的切换.而android中实现对音量和振铃模式的控制主要通过AudioManager类来实现. AudioManager类 关于喇叭与听筒的主要方法 1. AudioManag ...
- android听筒+扬声器自动切换,Android VOIP中的扬声器、听筒切换
在做voip通话的过程中,会频繁使用到免提播放和听筒接听的功能,而如何正确的切换,和AudioManager的调度是分不开的,直接上代码: //获取AudioManager服务 private val ...
- android 静态图片自动切换,Android静态图片人脸识别的完整demo(附完整源码)
Android静态图片人脸识别的完整demo(附完整源码) 来源:互联网 作者:佚名 时间:2015-03-24 20:07 本文介绍了android静态识别人脸并进行标记人眼位置及人脸框的完整dem ...
- ViewPager(一屏多页、无限滑动、自动切换)
一.简介 前段时间在腾讯视频中看到一个效果,是一个广告轮播,然后一屏还显示了多页.看着这个效果看着还不错,就自己实现了下. 国际惯例先上效果图,如下:(虽然界面比较简陋,但是功能是全的) ====== ...
- 高仿优酷Android客户端图片左右滑动(自动切换)
本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能 ...
- android imageview 图片切换动画,模仿优酷Android客户端图片左右滑动(自动切换)效果...
本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能 ...
- Android 滑动切换(首页展示,图片、新闻自动切换,循环切换,自动和手动)
最近做的项目,要用到滑动切换的效果,就是类似新闻客户端的图片一张一张的自动切换或者手动滑动切换,于是就搜集了一下资料,使用两种方式实现这样的效果,分别是ViewFlipper和ViewPager.这两 ...
- Android多效果轮播器/Banner实现,支持无限轮播、自动切换、指示器动画
2019.9.12 已封装成控件扔到GitHub上https://github.com/kjt666/Banner 开篇 接上篇文章动手实现你的ViewPager切换动画 本次内容是利用ViewPag ...
最新文章
- jemeter多场景混合案例_Redis 混合存储最佳实践指南
- SVM-支持向量机原理详解与实践之三
- windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)
- 电子设计从零开始 第一章总结
- java 持续集成工具_Jenkins-Jenkins(持续集成工具)下载 v2.249.2官方版--pc6下载站
- [转]WCF绑定选择
- (13)FPGA面试技能提升篇(Shell脚本)
- 微服务——最热门的架构
- java报错空指针异常_分析使用Spring Boot进行单元测试时,报出空指针异常
- static在内存层面的作用_static关键字总结
- 计算机Word2010在线做题,Word2010试题练习题库(答案).doc
- SAP 财务-统驭科目
- 通过DCMM评估对企业有什么作用
- Trivial、Non-Trivial和POD类型
- 中职中职计算机英语试题,中职英语试卷及参考答案
- 60项基于深度学习的SLAM顶会开源方案汇总(上篇)
- Android-涂鸦板
- 05_网站日志数据分析
- stm32利用外部中断控制小台灯
- 基于JAVA跨境电商网站计算机毕业设计源码+数据库+lw文档+系统+部署
热门文章
- Xshell连接虚拟机错误:Could not connect to ‘192.168.133.100‘ (port 22): Connection failed.
- 什么是客户端证书?(ssl证书)
- 鼻纹、静脉、虹膜……奇奇怪怪的生物识别技术有哪些?
- 使用tableau绘制出超市每天销售额的日历图
- 史上最牛叉的程序员招聘信息
- KFC Crazy Thursday
- 三菱FX1N PLC 485与三菱变频器modbus通讯可直接拿来实用了,三菱FX PLC与三菱变频器通讯
- 10个最顶尖的专业服装设计软件(外国)
- 500以内蓝牙耳机良心推荐,性价比超高的五款超值蓝牙耳机推荐
- 男士穿着西装应知事项