简述 Android 触摸屏手势识别
2010-04-20 06:02:00 来源:WEB开发网04. // TODO Auto-generated method stub
05. Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show();
06. return false;
07. }
08.
09. // 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发
10. // 注意和onDown()的区别,强调的是没有松开或者拖动的状态
11. @Override
12. public void onShowPress(MotionEvent e) {
13. // TODO Auto-generated method stub
14. }
15.
16. // 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
17. @Override
18. public boolean onSingleTapUp(MotionEvent e) {
19. // TODO Auto-generated method stub
20. return false;
21. }
22.
23. // 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发
24. @Override
25. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
26. float velocityY) {
27. // TODO Auto-generated method stub
28. return false;
29. }
30.
31. // 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发
32. @Override
33. public void onLongPress(MotionEvent e) {
34. // TODO Auto-generated method stub
35.
36. }
37.
38. // 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发
39. @Override
40. public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
41. float distanceY) {
42. // TODO Auto-generated method stub
43. return false;
44. }
我们来试着做一个onFling()事件的处理吧,onFling()方法中每一个参数的意义我写在注释中了,需要注意的是Fling事件的处理代码中,除了第一个触发Fling的ACTION_DOWN和最后一个ACTION_MOVE中包含的坐标等信息外,我们还可以根据用户在X轴或者Y轴上的移动速度作为条件。比如下面的代码中我们就在用户移动超过100个像素,且X轴上每秒的移动速度大于200像素时才进行处理。
更多精彩
赞助商链接