预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

烟台杰瑞教育科技有限公司(Android开发培训部)版权所有 ------杰瑞教育(www.jerehedu.com)专注IT技能培训打造一流人才服务平台------ Android实现图片轮显效果——自定义ViewPager控件 一、问题概述使用ViewPager控件实现可横向翻页、水平切换图片等效果,但ViewPager需要手动滑动才能切换页面,图片轮显效果的效果本质上就是在ViewPager控件的基础上让它能自动的进行切换,所以实现图片轮显步骤如下: 1、扩展ViewPager自定义一个MyScrollImageView类 2、为MyScrollImageView定义适配器,装载图片信息 3、定义图片滑动动画时间控制类 接下来我们就一步步实现下图案例: 二、实现套路1、为自定义ViewPager控件编写适配器 我们先为我们的自定义ViewPager控件编写一个适配器,用于加载要轮显的图片,这个和使用ViewPager控件一样都要为适配器控件定义适配器 //适配器 publicclassMyPagerAdapterextendsPagerAdapter{ privateActivitymActivity;//上下文 privateList<View>mListViews;//图片组 publicMyPagerAdapter(){ } publicMyPagerAdapter(ActivitymActivity,List<View>mListViews){ this.mActivity=mActivity; this.mListViews=mListViews; } publicintgetCount(){ if(mListViews.size()==1){//一张图片时不用流动 returnmListViews.size(); } returnInteger.MAX_VALUE; } /** 返回List中的图片元素装载到控件中 */ publicObjectinstantiateItem(Viewv,inti){ if(((ViewPager)v).getChildCount()==mListViews.size()){ ((ViewPager)v) .removeView(mListViews.get(i%mListViews.size())); } ((ViewPager)v).addView(mListViews.get(i%mListViews.size()),0); returnmListViews.get(i%mListViews.size()); } publicbooleanisViewFromObject(Viewarg0,Objectarg1){ returnarg0==(arg1); } publicvoiddestroyItem(ViewGroupview,inti,Objectobject){ view.removeView(mListViews.get(i%mListViews.size())); } } 2、自定义一个MyScrollImageView类 自定义一个MyScrollImageView类,主要扩展一个start(…)方法,该方法实现按时间间隔不断切换图片 publicclassMyImgScrollextendsViewPager{ ActivitymActivity;//上下文 List<View>mListViews;//图片组 intmScrollTime=0; Timertimer; intoldIndex=0; intcurIndex=0; publicMyImgScroll(Contextcontext,AttributeSetattrs){ super(context,attrs); } /** *开始广告滚动 * *@parammainActivity *显示广告的主界面 *@paramimgList *图片列表,不能为null,最少一张 *@paramscrollTime *滚动间隔,0为不滚动 *@paramovalLayout *圆点容器,可为空,LinearLayout类型 *@paramovalLayoutId *ovalLayout为空时写0,圆点layoutXMl *@paramovalLayoutItemId *ovalLayout为空时写0,圆点layoutXMl圆点XMl下ViewID *@paramfocusedId *ovalLayout为空时写0,圆点layoutXMl选中时的动画 *@paramnormalId *ovalLayout为空时写0,圆点layoutXMl正常时背景 */ publicvoidstart(Ac