你的位置:首页 > 软件开发 > Java > 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

安卓开发笔记——自定义广告轮播Banner(实现无限循环)

发布时间:2015-07-18 21:00:07
关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户"友好性",下面来看几个示例图:      再来看下我 ...

安卓开发笔记——自定义广告轮播Banner(实现无限循环)

  关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户"友好性",下面来看几个示例图:

安卓开发笔记——自定义广告轮播Banner(实现无限循环)   安卓开发笔记——自定义广告轮播Banner(实现无限循环)   安卓开发笔记——自定义广告轮播Banner(实现无限循环)

再来看下我仿写的效果:

安卓开发笔记——自定义广告轮播Banner(实现无限循环)

 

关于广告轮播Banner这个东西,GitHub上面应该有现成的开源组件,不过我没去找过,觉得实现起来不会太难,就自己去仿写了,下面我说下实现的思路:

1、首先看到这个可以滑动切换图片的界面,我们很自然就会想到ViewPager控件。

2、需要去考虑它的伪循环(其实只是滑到末尾图片再切换到开始图片,给人一种"无限循环"的错觉),做过GalleyView画廊效果的朋友应该很熟悉,当我们滑到画廊到底端,如果想看第一张图片需要再重新滑回去,那么这样给用户的体验就不好,所以我们会在适配器Adapter的getCount()方法里,返回一个很大的数值,让它能够"无限循环"。不清楚的朋友也没关系,下面代码会详细提到。

3、就是考虑它的自动滑动效果,那么很简单的就会去想到定时器,每隔几秒让它自动滑动一次,再通过配合ViewPager的设置当前页面setCurrentItem就可以达到我们想要的效果。

4、最后就是需要考虑到细节方面的东西了,如何让画面滑动配合底部的小圆圈点,我们在做定时器操作的时候,无限循环肯定是一个while永true的状态,当我们切换退出当前界面的时候,这个定时器循环要怎么处理。

 

好了,考虑好实现原理和流程,我们就可以上手写代码了。

 

1、首先先来分析下布局:

安卓开发笔记——自定义广告轮播Banner(实现无限循环)

上面截图说的很详细了,这里直接上代码:

安卓开发笔记——自定义广告轮播Banner(实现无限循环)安卓开发笔记——自定义广告轮播Banner(实现无限循环)
 1 <RelativeLayout ="http://schemas.android.com/apk/res/android" 2   ="http://schemas.android.com/tools" 3   android:layout_width="match_parent" 4   android:layout_height="match_parent" > 5  6   <android.support.v4.view.ViewPager 7     android:id="@+id/viewpager" 8     android:layout_width="match_parent" 9     android:layout_height="150dp" />10 11   <LinearLayout12     android:layout_width="match_parent"13     android:layout_height="wrap_content"14     android:layout_alignBottom="@id/viewpager"15     android:background="#33000000"16     android:orientation="vertical"17     android:padding="5dp" >18 19     <TextView20       android:id="@+id/tv_bannertext"21       android:layout_width="wrap_content"22       android:layout_height="wrap_content"23       android:layout_gravity="center_horizontal"24       android:padding="5dp"25       android:text="我是第一个广告语"26       android:textColor="@android:color/white" />27 28     <LinearLayout29       android:id="@+id/points"30       android:layout_width="match_parent"31       android:layout_height="wrap_content"32       android:gravity="center_horizontal"33       android:orientation="horizontal" >34     </LinearLayout>35   </LinearLayout>36 37 </RelativeLayout>

原标题:安卓开发笔记——自定义广告轮播Banner(实现无限循环)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录