指令汇B新闻客户端开发(四) 自动轮播条

简介:     在这个新闻客户端,我们可以看到有一个轮播页面,在这个项目中,用Handler和一个定时器来做更容易一些, 我们定义一个Handler: private Handler mHandler; 定时器的代码如下: // 自动轮播条显示 if (mHandler == null) { mHandler = new Handler() { pub

    在这个新闻客户端,我们可以看到有一个轮播页面,在这个项目中,用Handler和一个定时器来做更容易一些,

我们定义一个Handler:

private Handler mHandler;




定时器的代码如下:

// 自动轮播条显示
			if (mHandler == null) {
				mHandler = new Handler() {
					public void handleMessage(android.os.Message msg) {
						int currentItem = mViewPager.getCurrentItem();

						if (currentItem < mTopNewsList.size() - 1) {
							currentItem++;
						} else {
							currentItem = 0;
						}

						mViewPager.setCurrentItem(currentItem);// 切换到下一个页面
						mHandler.sendEmptyMessageDelayed(0, 3000);// 继续延时3秒发消息,
																	// 形成循环
					};
				};

				mHandler.sendEmptyMessageDelayed(0, 3000);// 延时3秒后发消息
			}

轮播条的触摸监听:

class TopNewsTouchListener implements OnTouchListener {

		@Override
		public boolean onTouch(View v, MotionEvent event) {
			switch (event.getAction()) {
			case MotionEvent.ACTION_DOWN:
			//	System.out.println("按下");
				mHandler.removeCallbacksAndMessages(null);// 删除Handler中的所有消息
				// mHandler.postDelayed(new Runnable() {
				//
				// @Override
				// public void run() {
				//
				// }
				// }, 3000);
				break;
			case MotionEvent.ACTION_CANCEL:
				System.out.println("事件取消");
				mHandler.sendEmptyMessageDelayed(0, 3000);
				break;
			case MotionEvent.ACTION_UP:
				System.out.println("抬起");
				mHandler.sendEmptyMessageDelayed(0, 3000);
				break;

			default:
				break;
			}

			return true;
		}

	}


// 表示事件是否拦截, 返回false表示不拦截, 可以让嵌套在内部的viewpager相应左右划的事件
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
return false;
}


目录
相关文章
|
9月前
|
容器
借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能
借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能
648 0
借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能
|
11月前
|
前端开发 JavaScript 区块链
(小说版)【简历优化平台-2】四个部分初显现,上传按钮打头前
(小说版)【简历优化平台-2】四个部分初显现,上传按钮打头前
|
Web App开发 JavaScript IDE
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
148 0
iPhone 14 Pro 渲染图曝光;​程序员编码抢挂疫苗号牟利 40 万;Chrome 102 发布 | 思否周刊
|
开发框架 监控 小程序
微信小程序实时定位的要做的那些事,你学废了吗?(附示例)
开发框架:uniapp 本片文章主要实现了微信小程序的实时定位功能的小组件实现。
618 0
|
Web App开发 机器学习/深度学习 人机交互
打开摄像头,2D插画实时变动画,中国程序媛出品,Demo在线可玩
画一只狸(jian)克(shang),并让它拍摄一个「催款」的特写,需要几步?
|
前端开发 JavaScript iOS开发
一入前端深似海,从此红尘是路人系列第十二弹之移动端模拟IOS虚拟按钮效果
用过苹果的大家都知道,苹果公司做了一个虚拟按钮,让页面上的挂件可被拖拽并吸附到屏幕边框处,降低挂件对用户的干扰。该效果如果用JavaScript进行实现又该如何实现呢,接下来我将分享给大家。首先上一张效果图
1667 0
|
Web App开发 前端开发 UED