Android onTouchEvent和setOnTouchListener中onTouch的区别

OnTouchEvent()方法

是获取的对屏幕的各种操作,比如向左向右滑动,点击返回按钮等等。

属于一个宏观的屏幕触摸监控。

OnTouchListener()方法

是获取某一个控件某一个View的点击监控。

官方文档:http://developer.android.com/ref
... nTouchListener.html

两者很容易区分。

区别如下:

1、如果setOnTouchListener中的onTouch方法返回值是true(事件被消费)时,则onTouchEvent方法将不会被执行;

2、只有当setOnTouchListener中的onTouch方法返回值是false(事件未被消费,向下传递)时,onTouchEvent方法才被执行。

3、以上说的情况适用于View对象(事件会最先被最内层的View对象先响应)而不是ViewGroup对象(事件会最先被最外层的View对象先响应)。

综合来讲:

onTouchListener的onTouch方法优先级比onTouchEvent高,会先触发。

假如onTouch方法返回false,会接着触发onTouchEvent,反之onTouchEvent方法不会被调用。

内置诸如click事件的实现等等都基于onTouchEvent,假如onTouch返回true,这些事件将不会被触发。

时间: 2024-10-03 06:35:21

Android onTouchEvent和setOnTouchListener中onTouch的区别的相关文章

View中的onTouchEvent()与setOnTouchListener()中的ontouch()方法的事件处理先后顺序

Touch事件的两种情况 1.覆写View.class中定义的onTouchEvent-->基于事件回调监听方式 @Override public boolean onTouchEvent(MotionEvent ev) { // TODO return super.onTouchEvent(ev); } 2.通过监听的形式,监听View.class中的setOnTouchListener(listener)--->基于监听器事件监听方式 /** * Register a callback t

Android中onTouch与onClick事件的关系

这几天遇到点关于Android的触摸事件相关的,还跟onClick有关,暂且记下: LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调 1.在屏幕上触摸之后基本的执行流程如下: onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,

Android 事件中 OnTouch 事件

Android 事件中 OnTouch  事件: 实现的方式: 1 监听 2 回调 1 监听: package com.example.conflicttest; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.MotionEvent; import android.view.View; imp

(转载)Android xml资源文件中@、@android:type、@*、?、@+引用写法含义以及区别

原帖地址:http://blog.csdn.net/zfrong/article/details/7332545 Android xml资源文件中@.@android:type.@*.?.@+引用写法含义以及区别 一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor=&

Android xml资源文件中@、@android:type、@*、?、@+含义和区别

一[email protected]代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@android:type/name android:textColor="@android:color/opaque_red" 注意:其实@android:type/name是@[package:]type/name 的一个子类 二[email protected]*

Android Project和app中两个build.gradle配置的区别

Android 开发也挺长时间了,从开始就使用的AndroidStudio开发,但是说下来其实自己对AS(AndroidStudio简称)还真的是不了解不深入.好吧,其实我只知道AS是一个相当强大的工具,我要学习的还有很多.  言归正传,这段时间在学习RtroLambda和ButterKnife的使用,我发现他们的导入在Project的build.gradle中引入的而不是在app的build.gradle中,这让我觉得有点郁闷,因为我才发现不太知道这两个gradle的区别,下面来总结一下. 一

android android.mk中:= ?= +=之间的区别

转自:http://blog.csdn.net/love_xsq/article/details/50395138 在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为: ifdef DEFINE_VRE     VRE = “Hello World!” else endif ifeq ($(OPT),define)     VRE ?= “Hello World! First!” endif ife

Android onTouchEvent方法

Android中监听触摸事件是onTouchEvent方法,它的参数为MotionEvent,下面列举MotionEvent的一些常用的方法: getPointerCount() 获得触屏的点数. getX() 获得触屏的X坐标值 getY() 获得触屏的Y坐标值 getAction() 获得触屏的动作 ACTION_DOWN:按下的动作开始,比如用手指按屏幕. ACTION_UP:按下的动作完成,比如手指停止按屏幕,离开屏幕. ACTION_MOVE:在动作开始和完成之间的移动,比如手指在屏幕

[Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印

    前一篇文章讲述了Android实现图片Matrix矩阵类缩放.旋转.对比度.亮度.饱和度处理,但是真正的图片软件都是使用触屏实现图片缩放.移动.添加水印等功能,所以该篇文章主要通过setOnTouchListener监听实现该功能.希望文章对大家有所帮助. 一.图片缩放实现     首先先简单介绍Android如何实现触屏缩放图片和移动图片,新建TouchImageViw工程.设计XML中activity_main.xml布局: <RelativeLayout xmlns:android