您的位置:首页 > 移动开发 > Android开发

Android 自定义Banner广告轮播图

2016-08-16 22:08 651 查看
现在我们经常看到大部分的App都实现了banner广告的轮播图功能,下面是我实现的轮播图的截图:


下面简单的介绍一下我实现的思路和主要的步骤,

首先我分析的思路是从这六个方面分析的:1、水平滑动,2、自动滑动,3、点击事件(这边我的例子里面没有实现点击事件,到时候自己项目中需要实现的点击事件自己再具体去实现)4、循环滑动,5、手动滑动时暂停自动滑动6、Indicator指示器(这里的Indicator指示器也是通过自定义控件实现的),下面就开始介绍具体一些实现的代码的主要步骤

首先针对第一点,水平滑动,其实这个是比较容易实现的,我用的是support v4包中的ViewPager



然后现在可以解决自动滑动的问题,定义一个方法,通过postdelayed来实现自动滑动的问题,


,但是这里需要注意的是滑动到最后一张的时候要回到第一张图片,我这里的想法是让图片尽可能的多来实现循环滑动,所以把count设置的大一点,然后通过当前的position对数组长度求模,作为id传到item上让他显示图片

然后,现在解决当我们手动滑动时,图片就停止自动滑动,在这里我是在外部定义了一个变量来记录用户是否处在手动滑动的状态,然后在onPageScrollStateChanged设置变量的状态

,然后在自动滑动方法中判断一下!实现到这里,基本的功能都能实现了,现在讲一下自定义Indicator指示器,

首先,我的实现思路是1、先画静态的若干个空心圆,然后默认一个实心的圆,2、结合ViewPager,3、滑动时实心圆移动

先在onDraw方法中分别计算第一个圆心的坐标,然后画空心和实心的圆,

在自定义指示器中添加实心圆移动的方法,在ViewPager的滑动实现调用该方法

这样就可以实现Indicator指示器指示器的功能了,然后在布局中把Indicator指示器放进来就行了

这里注意,我把圆的个数自定义到资源文件arrts中,记得在整个布局的外部加上xmlns:app="http://schemas.android.com/apk/res-auto",然后在初始化Banner的时候调用这两个方法就可以实现指示器跟着Baner的滑动而滑动了。

写的不好,但是希望对有需要的人有帮助!

下面附上我的源码:http://download.csdn.net/detail/doubleccccccccccccc/9604974
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐