转自 http://www.apkbus.com/forum.php?mod=viewthread&tid=243810&extra=
触摸,手势操作已经很好的融入了我们的生活。那么Android开发中触摸事件要如何捕捉?如何处理?如何识别手势?事件的传递机制又是怎么样的?下面我们将通过一个小例子来进行这方面的学习。
onTouch事件
class MyOnTouch implements OnTouchListener{ int[] temp = new int[] { 0, 0 }; Boolean ismove = false; int downX = 0; int downY = 0; @Override public boolean onTouch(View v, MotionEvent event) { int eventaction = event.getAction(); int x = (int) event.getRawX(); int y = (int) event.getRawY(); switch (eventaction) { case MotionEvent.ACTION_DOWN: // touch down so check if the temp[0] = (int) event.getX(); temp[1] = y - v.getTop(); downX = (int) event.getRawX(); downY = (int) event.getRawY(); ismove = false; break; case MotionEvent.ACTION_MOVE: // touch drag with the ball v.layout(x - temp[0], y - temp[1], x + v.getWidth() - temp[0], y - temp[1] + v.getHeight()); if (Math.abs(downX - x) > 10 || Math.abs(downY - y) > 10) ismove = true; break; case MotionEvent.ACTION_UP: if (!ismove) Toast.makeText(MainActivity.this, "你点击了这个按钮", Toast.LENGTH_LONG).show(); break; } return false; } }