关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户"友好性",下面来看几个示例图: 再来看下我 ...
关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户"友好性",下面来看几个示例图:
再来看下我仿写的效果:
关于广告轮播Banner这个东西,GitHub上面应该有现成的开源组件,不过我没去找过,觉得实现起来不会太难,就自己去仿写了,下面我说下实现的思路:
1、首先看到这个可以滑动切换图片的界面,我们很自然就会想到ViewPager控件。
2、需要去考虑它的伪循环(其实只是滑到末尾图片再切换到开始图片,给人一种"无限循环"的错觉),做过GalleyView画廊效果的朋友应该很熟悉,当我们滑到画廊到底端,如果想看第一张图片需要再重新滑回去,那么这样给用户的体验就不好,所以我们会在适配器Adapter的getCount()方法里,返回一个很大的数值,让它能够"无限循环"。不清楚的朋友也没关系,下面代码会详细提到。
3、就是考虑它的自动滑动效果,那么很简单的就会去想到定时器,每隔几秒让它自动滑动一次,再通过配合ViewPager的设置当前页面setCurrentItem就可以达到我们想要的效果。
4、最后就是需要考虑到细节方面的东西了,如何让画面滑动配合底部的小圆圈点,我们在做定时器操作的时候,无限循环肯定是一个while永true的状态,当我们切换退出当前界面的时候,这个定时器循环要怎么处理。
好了,考虑好实现原理和流程,我们就可以上手写代码了。
1、首先先来分析下布局:
上面截图说的很详细了,这里直接上代码:
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
(#换成@)。