利用定时器使ViewPager页面滚动显示

原创 2013年12月05日 12:00:10

前面一篇文章介绍了怎么用ViewPager实现分页显示效果,不过那种方式是用手动滑动的,如何让其自动滚动实现轮播的效果呢?这个时候定时器就排上用场了。在Activity中覆写onResume()方法,onStop方法,生成继承自TimerTask的MyTask类。

@Override
	protected void onResume() {
		// 执行这个任务
		if (mTimer == null) { // 保证只有一个 定时任务
			mTimer = new Timer(true);
			mTimer.schedule(new MyTask(), 20000, 5000);
		}
		super.onResume();
	}

	@Override
	protected void onStop() {

		if (mTimer != null) {
			mTimer.cancel();
			mTimer = null;
		}
		super.onStop();
	}

	private class MyTask extends TimerTask {
		// 要定时执行的任务
		@Override
		public void run() {
			if (isContinue) {
				random++; //初始值为0
				Message msg = Message.obtain();
				msg.what = CHANGE_VP;
				msg.arg1 = random;
				// Log.e(TAG, "random:msg.arg1="+msg.arg1);
				handler.sendMessage(msg);
			}

		}
	}
每隔5秒就会执行一次run函数,传递msg.what给handler处理,设置下一分页的item值,这样轻松实现了ViewPager自动滚动轮播的效果了。

private Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case CHANGE_VP:
				item = msg.arg1 % mJsonArray.length();
				// Log.e(TAG, "item=" + item);
				mViewPager.setCurrentItem(item, false);
				break;
			default:
				break;
			}
		};
	};



Android ViewPager的使用以及定时切换实现

ViewPager的页面布局如下:
  • szqsdq
  • szqsdq
  • 2015年07月06日 17:33
  • 1050

ViewPager实现循环滑动实现方法+定时自动滑动实现方法详解

ViewPager实现循环滑动实现方法+定时自动滑动实现方法详解   要实现如下效果顶部有一行广告条,包含三页每过一段时间自动显示下一个广告页,当前显示最后一页广告的时候下一页是第一页。另外支持用户手...
  • free555
  • free555
  • 2015年10月23日 22:10
  • 998

按键控制数码管0-99显示,十位不跳,用定时器T0中断

如果直接在主函数中写按键控制数码管0-99显示,不管怎么延时数码管十位上的数都会闪,原因就是单片机的机器周器太快,人的按键速度是ms级的,所以等你人操作完了,单片机早就执行了不知道多少遍。 解决方法...
  • lbd321
  • lbd321
  • 2017年04月18日 13:36
  • 661

ViewPager定时器切换图片

主Activity: public class LsnViewPagerActivity extends Activity { private int[] imageResIds; privat...
  • heng615975867
  • heng615975867
  • 2013年12月08日 17:42
  • 6262

ViewPager,实现真正的无限循环(定时+手动)

利用定时器,实现循环轮播,很简单;只需在定时器的消息里加如下代码即可: int count = adapter.getCount(); if (count > 1) { // 多于1个...
  • gaojinshan
  • gaojinshan
  • 2014年01月09日 12:54
  • 41886

图片加载和viewPager结合的轮播

private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { ...
  • qq_38759627
  • qq_38759627
  • 2017年05月25日 14:54
  • 297

ViewPager自动切换及手动滑动重新计时的问题

ViewPager自动切换及手动滑动重新计时的问题
  • yjs1129580545
  • yjs1129580545
  • 2016年09月07日 15:58
  • 1942

viewpager实现图片轮番(本地图片)

(项目中需要实现图片轮番效果,就查资料着重学习,开始是本地图片实现,最后又根据需求改成获取网络图片,便于维护) 原理就是利用定时任务器定时切换ViewPager的页面,根据图片个数动态生成下端的圆点...
  • u013408979
  • u013408979
  • 2016年08月06日 14:11
  • 397

利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个提示灯依次一个一个闪动,闪动频率为10次每秒(8个灯亮一遍为一个周期),循环

#include #include #define uchar unsigned char #define uint unsigned int uchar tt,aa; //sbit d1=P1^0...
  • QIAOSHUXIANG
  • QIAOSHUXIANG
  • 2015年09月01日 19:28
  • 4623

Android ViewPager 无限循环左右滑动(可自动) 实现

对于ViewPager 广告页 这个功能 很多APP都有这个功能 在网上也看过一些资料,我就在这把我自己完整的实现方法写出来吧 Demo放在最下面 基础的ViewPager: ...
  • u012760183
  • u012760183
  • 2016年08月17日 14:43
  • 5047
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用定时器使ViewPager页面滚动显示
举报原因:
原因补充:

(最多只允许输入30个字)