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

 更新时间:2017年06月15日 10:29:48   投稿:lqh  
这篇文章主要介绍了 Android 事件触发机制的深入学习的相关资料,需要的朋友可以参考下

 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类,并重写其中的几个方法,以监听事件发生。

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

相关文章

  • Android编程之菜单实现方法

    Android编程之菜单实现方法

    这篇文章主要介绍了Android编程之菜单实现方法,以实例形式较为详细的分析了Android编程实现菜单的布局及功能相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android开发之文件操作详解

    Android开发之文件操作详解

    这篇文章主要介绍了Android开发之文件操作,结合实例形式分析了Android开发中文件操作的步骤及布局、功能等实现技巧,需要的朋友可以参考下
    2017-07-07
  • Android开发之项目模块化实践教程

    Android开发之项目模块化实践教程

    这篇文章主要给大家介绍了关于Android开发之项目模块化的相关资料,文中通过示例代码给各位Android开发者们介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习下吧。
    2017-09-09
  • Android实现控件的缩放移动功能

    Android实现控件的缩放移动功能

    这篇文章主要介绍了android控件的缩放,移动功能,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-01-01
  • Android Flutter利用贝塞尔曲线画一个小海豚

    Android Flutter利用贝塞尔曲线画一个小海豚

    贝塞尔曲线的应用填补了计算机绘制与手绘之前的差距,更能表达人想画出的曲线。本文就将利用贝塞尔曲线绘制一个可爱的小海豚,需要的可以参考一下
    2022-04-04
  • android studio实现简单的计算器小功能

    android studio实现简单的计算器小功能

    这篇文章主要为大家详细介绍了android studio实现简单的计算器小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android自定义输入框提示功能

    Android自定义输入框提示功能

    这篇文章主要为大家详细介绍了Android自定义输入框提示功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • Android程序版本更新之通知栏更新下载安装

    Android程序版本更新之通知栏更新下载安装

    Android应用检查版本更新后,在通知栏下载,更新下载进度,下载完成自动安装。接下来通过本文给大家介绍Android程序版本更新之通知栏更新下载安装的相关知识,需要的朋友参考下吧
    2016-03-03
  • Android Studio 3.6运行模拟器时Emulator警告问题的解决方案

    Android Studio 3.6运行模拟器时Emulator警告问题的解决方案

    这篇文章主要介绍了Android Studio 3.6运行模拟器时Emulator警告问题的解决方案,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Android 控件(button)对齐方法实现详解

    Android 控件(button)对齐方法实现详解

    horizontal是让所有的子元素按水平方向从左到右排列,vertical是让所有的子元素按竖直方向从上到下排列,下面为大家介绍下控件(button)的对齐方法
    2013-06-06

最新评论