欢迎来到天天文库
浏览记录
ID:39464563
大小:66.50 KB
页数:11页
时间:2019-07-03
《Android自定义View(七)--很low的bannerView》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android自定义View(七)--很low的bannerView作为一个长期“拷贝”的程序猿,偶尔还是有点小失落的,偶尔也会有大神梦,即使那么遥不可及。。。于是乎,在一个月黑风高的夜晚,有史以来最low的广告banner诞生了。先谈谈整体的思路吧,看到有些大神用AdapterView实现的,而我这种渣,首先想到的就是viewpager,虽然viewpager没有那么完美,不过能勉强将就也还是极好的。当然只有viewpager是不够的,还有viewpager上面的那几个小点点,这个我就更简单粗暴的用一个Layout装载了结果imageview,然后viewpager改变item的时候,
2、改变小点点的图片就可以啦。还有一个问题就是循环播放啦,这个就要从viewpager的adapter入手了,上网查了很多,得到的结论就是在adapter的getCount方法上做手脚,即返回一个很大的数,使viewpager的item数量大于你看到的实际数量,而多的item中显示与前面item相同的内容,这样看起来就是循环的啦。剩下的要解决自动循环就更简单啦,管你用timer还是handler还是thread都可以简单搞定。最后要解决的就是使这个东西用起来比较简单,所以我就简单的对它进行了一层小包装。主要的视图类packagecom.drivingassisstantHouse.libra
3、ry.widget.bannerview;importandroid.content.Context;importandroid.content.res.TypedArray;importandroid.support.annotation.NonNull;importandroid.support.v4.view.PagerAdapter;importandroid.support.v4.view.ViewPager;importandroid.util.AttributeSet;importandroid.view.MotionEvent;importandroid.view.Vie
4、w;importandroid.view.animation.AccelerateInterpolator;importandroid.view.animation.Interpolator;importandroid.widget.ImageView;importandroid.widget.LinearLayout;importandroid.widget.RelativeLayout;importandroid.widget.Scroller;importcom.drivingassisstantHouse.library.R;importcom.drivingassisstant
5、House.library.tools.SLog;importcom.drivingassisstantHouse.library.tools.ToolUnit;importjava.lang.reflect.Field;importjava.util.ArrayList;/***包名:com.drivingassisstantHouse.library.widget.bannerview*描述:广告banner*创建者:yankebin*日期:2016/2/27*/publicclassBannerViewextendsRelativeLayout{publicstaticfinali
6、ntBANNER_TYPE_GUIDE=1;publicstaticfinalintBANNER_TYPE_ADVERT=BANNER_TYPE_GUIDE+1;protectedinttype=BANNER_TYPE_GUIDE;privateBaseBannerViewpagerviewPager;privateLinearLayoutindicator;privatebooleanisAutoLoop=false;privatelongloopDelayTime=4000;privatelongscrollDuration=1200;privateArrayList7、ew>dots=newArrayList<>();publicBannerView(Contextcontext){super(context);init();}publicBannerView(Contextcontext,AttributeSetattrs){super(context,attrs);TypedArraytypedArray=getContext().obtainStyledAttributes(attrs,R.
7、ew>dots=newArrayList<>();publicBannerView(Contextcontext){super(context);init();}publicBannerView(Contextcontext,AttributeSetattrs){super(context,attrs);TypedArraytypedArray=getContext().obtainStyledAttributes(attrs,R.
此文档下载收益归作者所有