探测当前用户各种不同的操作手势,通过 GestureDetector.OnGestureListener callback来获取当前被触发的操作手势(Single Tap Up、Show Press、Long Press、Scroll、Down、Fling)。 使用方法: 01.private GestureDetector mGestureDetector; 02.@Override 03.public void onCreate(Bundle savedInstanceState) { 04. super.onCreate(savedInstanceState); 05. mGestureDetector = new GestureDetector(this, new LearnGestureListener()); 06.} 07.@Override 08.public boolean onTouchEvent(MotionEvent event) { 09. if (mGestureDetector.onTouchEvent(event)) 10. return true; 11. else 12. return false; 13.} 14.class LearnGestureListener extends GestureDetector.SimpleOnGestureListener{ 15. @Override 16. public boolean onSingleTapUp(MotionEvent ev) { 17. Log.d("onSingleTapUp",ev.toString()); 18. return true; 19. } 20. @Override 21. public void onShowPress(MotionEvent ev) { 22. Log.d("onShowPress",ev.toString()); 23. } 24. @Override 25. public void onLongPress(MotionEvent ev) { 26. Log.d("onLongPress",ev.toString()); 27. } 28. @Override 29. public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 30. Log.d("onScroll",e1.toString()); 31. return true; 32. } 33. @Override 34. public boolean onDown(MotionEvent ev) { 35. Log.d("onDownd",ev.toString()); 36. return true; 37. } 38. @Override 39. public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 40. Log.d("d",e1.toString()); 41. Log.d("e2",e2.toString()); 42. return true; 43. } 44.} 说明: 在当前类中创建一个GestureDetector实例。 1.private GestureDetector mGestureDetector; 创建一个Listener来实时监听当前面板操作手势。 1.class LearnGestureListener extends GestureDetector.SimpleOnGestureListener 在初始化时,将Listener实例关联当前的GestureDetector实例。 1.mGestureDetector = new GestureDetector(this, new LearnGestureListener()); 利用onTouchEvent方法作为入口检测,通过传递MotionEvent参数来监听操作手势。 1.mGestureDetector.onTouchEvent(event) |
09-21
09-21
09-21