setOnTouchListener监听器问题

============问题描述============


代码如下:
private void initGameView() {

		setOnTouchListener(new View.OnTouchListener() {

			private float startX, startY, offsetX, offsetY;



			@Override

			public boolean onTouch(View v, MotionEvent event) {

				switch (event.getAction()) {

				case MotionEvent.ACTION_DOWN:

					startX = event.getX();

					startY = event.getY();

					break;

				case MotionEvent.ACTION_UP:

					offsetX = event.getX() - startX;

					offsetY = event.getY() - startY;



					if (Math.abs(offsetX) > Math.abs(offsetY)) {

						if (offsetX < -5) {

							System.out.println("left");

						} else if (offsetX > 5) {

							System.out.println("right");

						} 

						else {

							if (offsetY < -5) {

								System.out.println("up");

							} else if (offsetY > 5) {

								System.out.println("down");

							}

						}

						

					}

					

					break;

				}

				return true;



				



			}

左右的时候日志里面有显示,上下的时候不显示,这是为何?求解。。

============解决方案1============


如果要执行里面的else,offsetX要在-5到5之间,而Math.abs(offsetX) > Math.abs(offsetY),所以offsetY不会在-5和5之间。
posted @ 2014-10-23 16:03  0基础学android开发  阅读(793)  评论(0编辑  收藏  举报
我要啦免费统计