Android 事件触发机制的深入学习

最近在研究android的事件触发和传播机制,说来很惭愧,web下的事件太熟悉不过了,可在android中却很郁闷,常用的触摸事件都糊里糊涂的,在网上看了半天,也整理一份,供大家参考:

public class CustomDefaultActivity implements OnTouchListener {   private GestureDetector gd1;   private TableLayout tableLayout;    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.custom_default);     tableLayout = (TableLayout) findViewById(R.id.tableLayout);     gd1 = new GestureDetector(CustomDefaultActivity.this, new MyGesture());     tableLayout.setOnTouchListener(this);     tableLayout.setLongClickable(true);   }    @Override   public boolean dispatchTouchEvent(MotionEvent event) {     Log.e("-----------------------------------------------------------------------",       "dispatchTouchEvent");      if (gd1.onTouchEvent(event)) {       event.setAction(MotionEvent.ACTION_CANCEL);     }      return super.dispatchTouchEvent(event);   }    @Override   public boolean onTouch(View arg0, MotionEvent arg1) {     Log.e("-------", "onTouch");      return gd1.onTouchEvent(arg1);   }    public class MyGesture implements OnGestureListener {     @Override     public boolean onDown(MotionEvent arg0) {       Log.e("-------",         "onDown, 按下时触发[" + arg0.getX() + "," + arg0.getY() + "]");        return true;     }      @Override     public void onLongPress(MotionEvent arg0) {       Log.e("-------", "onLongPress,长时间按住时触发");     }      @Override     public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,       float arg3) {       Log.e("-------",         "onScroll,滑动拖动事件[" + arg0.getX() + "," + arg0.getY() + "]=[" +         arg1.getX() + "," + arg1.getY() + "]");        return true;     }      @Override     public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,       float arg3) {       Log.e("-------", "onFling, 滑动甩出事件");        return true;     }      @Override     public void onShowPress(MotionEvent arg0) {       Log.e("-------", "onShowPress,down事件发生,而move或up还没发生前触发该事件");     }      @Override     public boolean onSingleTapUp(MotionEvent arg0) {       Log.e("-------", "onSingleTapUp 释放事件");        return true;     }   } } 

监控触摸事件,主要是实现OnGestureListener类,并重写其中的几个方法,以监听事件发生。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android消息处理机制②
  2. Android ViewGroup 触摸屏事件派发机制和源码分析
  3. Android触摸事件的传递(四-1)--输入系统-InputReader
  4. Android缓存机制——一般存储实现
  5. 四、View的事件体系
  6. Android消息机制 空闲消息处理器
  7. 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent()
  8. Android学习07-----事件处理(3)监听日期与时间的改变_焦点事件_

随机推荐

  1. Android(安卓)内存优化与泄露
  2. Android进阶(十六)子线程调用Toast报Can'
  3. Android(安卓)Studio查看aar文件内容
  4. android:Activity数据传递之对象(Serializ
  5. 关于Android的屏幕适配,看这篇就够了
  6. Android(安卓)Studio安装时 :Gradle proj
  7. Android(安卓)NFC P2P学习2 - Service层
  8. Android官方架构组件LifeCycle详解
  9. [Android] 查看Android中的AlarmManager
  10. Android(安卓)从源码的角度分析——为什