`
jaenson
  • 浏览: 188988 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Android的OnTouch事件的处理机制

 
阅读更多
Button的onTouch,onClick,onLongClick事件发生先后顺序和关联:
一,onTouch返回false
首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件;
然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件。

二,onTouch返回true
首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生;期间不触发onClick和onLongClick事件

三,onTouch:down返回true,up返回false:结果同二。
机制分析:
   onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
只要当down返回true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick或者onLongClick事件了。因此尽管当up的时候返回false,系统也不会继续触发onClick事件了。

四,onTouch:down返回false,up返回true:
首先是onTouch事件的down事件发生,此时:
长按,触发onLongClick事件,然后是onTouch事件的up事件发生,完毕。
短按,先触发onTouch的up事件, 到一定时间后,自动触发onLongClick事件。
机制分析:
  onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
  当down返回false,标记此次事件为点击事件,而up返回了true,则表示此次事件一直没有结束,也就是一直长按下去了,达到长按临界时间后,自然触发长按事件,而onClick事件没有触发到。

下面是个例子:
 class OnTouchListener implements View.OnTouchListener {

	@Override
	public boolean onTouch(View v, MotionEvent mEvent) {
	   
	    switch (v.getId()) {
	    case R.id.XXXXX:
		if(mEvent.getAction() == MotionEvent.ACTION_DOWN) {
		    selfDrive.setImageDrawable(getResources().getDrawable(R.drawable.a1));
		} else {
		    selfDrive.setImageDrawable(getResources().getDrawable(R.drawable.a0));
		}
		return true;
    default:
      return true;
      }
   }
}


分享到:
评论

相关推荐

    Android onTouch事件传递机制

    在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...

    android click 和onTouch 事件处理机制.

    总的来说,Android的`click`和`onTouch`事件处理机制是基于事件的分发和消费,以及事件动作的序列。理解这些机制,可以帮助开发者更好地控制视图的交互行为,提供更加友好的用户体验。在实际开发中,应根据具体需求...

    手势操作onTouch事件demo

    首先,`onTouch`事件是Android触摸事件处理机制的一部分,主要由`View`类提供。当用户在屏幕上进行触摸操作时,系统会生成一系列的触摸事件(如`ACTION_DOWN`, `ACTION_MOVE`, `ACTION_UP`等),并按照一定的顺序...

    Android onTouch机制

    在Android开发中,触摸事件处理是用户界面交互的基础,`onTouch`机制是这一过程的核心。本文将深入探讨Android的触摸事件处理流程,包括`dispatchTouchEvent`和`onTouchEvent`两个关键方法,以及如何通过日志来观察...

    详细分析Android中onTouch事件传递机制

    总结来说,Android中的`onTouch`事件传递机制是一个从底层到高层,从子视图到父视图的逐层分发过程,视图可以选择处理事件或让事件继续冒泡。理解这一机制对于构建用户友好的触摸界面至关重要,它使得开发者能够精确...

    OnTouch事件对应代码

    在Android开发中,`OnTouch`事件是用户与应用程序交互的重要组成部分,特别是在处理触摸屏幕的操作时。本篇文章将深入探讨`OnTouch`事件的工作机制、常见应用场景以及在使用过程中容易出现的问题。 `OnTouch`事件是...

    Android中丰富多彩的onTouch事件.rar

    在Android开发中,触摸事件是用户与应用交互的重要方式,`onTouch`事件处理机制是这一过程中的核心。本文将深入探讨`onTouch`事件在Android中的应用,以及如何利用它来实现丰富多彩的用户交互。 一、`MotionEvent`...

    android悬浮框的onTouch和onClick事件同时存在

    标题提到的“android悬浮框的onTouch和onClick事件同时存在”是指在悬浮窗上,既能够响应用户的点击操作,又能够正确处理滑动行为。在Android中,由于触摸事件的分发机制,这两个事件的共存可能会遇到一些挑战。 ...

    onTouch事件测试

    本测试Demo将帮助你通过实践理解`onTouch`事件的处理流程,加深对Android触摸事件机制的认识。通过调试和修改代码,你可以探索更多高级功能,如手势识别、滑动监听等,从而提升Android开发技能。

    Android UI事件处理

    通过以上内容可以看出,Android UI事件处理机制为开发者提供了丰富的工具来捕捉并响应用户的输入操作。正确地使用这些事件监听器能够极大地提高应用的交互性和用户体验。开发者需要根据具体的场景选择合适的事件监听...

    android事件处理

    本篇将详细解析Android事件处理机制,特别是基于给定的"android 事件处理demo",我们将深入探讨如何在实际应用中处理触摸事件。 首先,Android事件处理主要分为两个阶段:事件分发(Dispatching)和事件处理...

    详谈Android中onTouch与onClick事件的关系(必看)

    这两个事件在处理用户点击行为时有着密切的关系,但它们的触发顺序和处理机制有所不同。 首先,我们来看`onTouch`事件。`onTouch`事件由`View.OnTouchListener`接口提供,当用户对View进行任何触摸操作时,包括按下...

    Android基本控件事件总结

    在Android开发中,基本控件是构建...了解并熟练掌握这些控件的事件处理机制,对于构建功能丰富的Android应用程序至关重要。在实际开发中,开发者可以根据需求结合这些基本控件和事件,构建出各种复杂的用户交互场景。

    android view OnTouchEvent 中同时处理 onClick,onLongClick,和左右移动事件

    在Android开发中,`View`的触摸事件处理是至关重要的,特别是当我们需要同时处理点击、长按以及滑动事件时。...在实际开发中,理解并灵活运用这些触摸事件处理机制,能够为用户提供更加丰富的交互体验。

    Android、教程<经典> 6 Android事件处理

    本教程将深入探讨Android事件处理机制,包括点击事件、触摸事件以及各种监听器的使用。以下是关于这个主题的详细内容: 1. **事件源**:在Android中,事件通常由UI组件(如按钮、文本框等)触发。这些组件被称为...

    android view 单击、双击和移动事件处理----TestViewEvent

    在Android开发中,View是用户界面的基本构建块,它提供了丰富的交互功能。...在`TestViewEvent`项目中,你可以学习到如何将这些概念应用于实际的开发场景,进一步加深对Android事件处理机制的理解。

    Android事件的分发机制详解

    Android事件的分发机制是Android UI交互中的核心概念,它决定了用户对屏幕上的控件进行触摸操作时,事件如何从顶级视图逐级传递到具体的处理者。在深入讲解之前,我们先理解两个基本概念:View和ViewGroup。View是...

    Android事件机制测试项目

    在Android开发中,事件机制是应用交互的核心部分,它...这个"Android事件机制测试项目"可能涵盖了上述一些或全部知识点,通过实际操作和调试,开发者能够更深刻地理解Android事件处理的工作原理,提高应用的交互体验。

    onTouch demo

    总的来说,“onTouch demo”是一个实用的学习资源,它可以帮助开发者深入理解Android触摸事件处理机制,并提供解决常见问题的思路。通过实践和研究这个示例,开发者能够更加熟练地在自己的应用中处理触摸事件,提升...

    Android事件分发机制的PPT总结

    Android事件分发机制是Android系统中处理用户输入的一个重要组成部分,它负责将触摸事件从系统底层传递到应用层的各个组件。一个事件分发的过程从硬件接收到触摸信号开始,经过Android系统内核的处理,最终到达应用...

Global site tag (gtag.js) - Google Analytics