【ViewPager的学习】实现自动循环切换
来源:互联网 发布:php apc缓存 编辑:程序博客网 时间:2024/05/18 03:24
(一)实现循环滑动:
(1)在MyAdapter中首先修改getCount()方法中的大小,让ViewPager可滑动页面增多。
(2)instantiateItem()方法中将position对图片数组求余:position%imageList.size()
(3)如果viewPager设置了OnPagerChangedListener方法,里面可能会有position,注意将position求余,否则可能会由于position作索引下标导致数组溢出异常。
(4)以上操作只能右循环,要实现左循环,只需把初始位置设置为getCount()方法中返回大小的一半,那样我们就可以向左滑
(注意:这只是看起来循环,实际上只不过是N个View在重复这5中View。
如下:0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5.....0,1,2,3,4,5)
代码如下:
private class MyAdapter extends PagerAdapter{ /** * 返回viewPager元素数量 */@Overridepublic int getCount() {return imageList.size()*100;}/** * 实例化一个元素 */@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(imageList.get(position%imageList.size()));return imageList.get(position%imageList.size());} /** * 判断是否相等 */@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO 自动生成的方法存根return arg0 == (View)arg1;}/** * 销毁元素 */@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO 自动生成的方法存根container.removeView((View) object);object = null;} }
(二)实现自动滚动,设定一个定时器
/*
* 自动循环有多种实现方式:
* 1、定时器:Timer
* 2、开子线程 while true 循环
* 3、ColckManager
* 4、 用handler 发送延时信息,实现循环
*/
这里我们用第四种,比较高效:
<span style="white-space:pre"></span>//判断是否自动滚动的标志 private boolean isrunning = false; /** * 自动滑动的Handler * 利用 Handler.sendEmptyMessageDelayed方法,实现定时滚动 * */ private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { //让ViewPager滑到下一页 viewPager.setCurrentItem(viewPager.getCurrentItem()+1); //延时,循环调用handler if(isrunning){ handler.sendEmptyMessageDelayed(0, 2000); } }; }; /** * Activity生命周期结束时终止定时,否则可能一直进行下去 */ protected void onDestroy() {super.onDestroy(); isrunning = false; };
在onCreate()方法中发送一个消息启动Handler。
handler.sendEmptyMessageDelayed(0, 2000);
为了在Activity生命周期结束时终止定时器,重写onDestory方法,里面将定时器标志置为false,停止定时即可。
0 0
- 【ViewPager的学习】实现自动循环切换
- 【ViewPager的学习】三、实现自动循环切换
- ViewPager实现自动循环切换
- ViewPager实现自动无限循环切换
- 学习日记--ViewPager实现图片自动切换
- ScheduledExecutorService实现viewpager的自动切换
- 自动切换的viewpager,实现广告页面的持续切换
- viewpager自动无限循环实现
- 自动循环切换图片的ViewPager,类似网页的广告页面切换
- 使用ViewPager实现可以自动切换的广告控件
- 使用ViewPager实现自动无限循环的轮播
- Handler+Timer/TimerTask实现ViewPager的自动循环播放
- Android 用ViewPager实现可自动循环的Banner图
- 实现无限自动循环的Viewpager,广告轮询页面
- Android ViewPager的无限循环与自动滚动实现
- ViewPager的自动循环滑动
- 自定义ViewPager实现图片自动切换
- android-ViewPager实现图片自动切换
- 线性分类器——parameter learning
- 后台检查codis集群节点工具
- 退出App你应该做些什么
- 不要一辈子靠技术生存
- 使用 Chrome Timeline 来优化页面性能
- 【ViewPager的学习】实现自动循环切换
- Java中多线程互斥访问的实现
- IDEA(jetbrain通用)优雅级使用教程
- 程序员该如何规划自己的人生
- listview的一些属性
- iOS自定义控件二
- Android程序安装后应用图标不显示
- 微信号码检测助手技术完整版介绍
- NN远程桌面SDK之VC++开发源码