`

2011.08.30——— android setOnTouchListener onTouchEvent

阅读更多
2011.08.30——— android setOnTouchListener onTouchEvent

参考:http://blog.csdn.net/tsiannian/article/details/6625999

测试代码如下:

package com.lp;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.TextView;


public class MainActivity extends Activity {
	private TextView tv;
 
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv = (TextView) findViewById(R.id.tv);
		tv.setOnTouchListener(new OnTouchListener() {
			
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				System.out.println("onTouchListener "+event.getRawX()+" "+event.getRawY());
				return false;
				//return true;
			}
		});
		tv.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				System.out.println("onclick");
			}
		});
	}
 
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		System.out.println("onTouchEvent "+event.getRawX()+" "+event.getRawY());
		return false;
 
	}
}



结论:
1、当在TextViw上触摸时 先触发setOnTouchLisener
   如果setOnTouchLisener返回false 会触发onTouchEvent 并且后续的move up都只会触发onTouchEvent
   如果setOnTouchLisener返回true 后续的move up 都只会触发setOnTouchLisener
2、当在其他位置触摸时 只会触发onTouchEvent
3、如果加上onClickListener时,
   如果setOnTouchLisener返回false 后续的move up都只会触发setOnTouchLisener;并且只有当up事件是在发生在textview上时 才会触发onclicklistener
   如果setOnTouchLisener返回true 后续的move up 也只会触发setOnTouchLisener 并且onclicklistner也不会执行


对了
当move触发setOnTouchLisener时 这个move不止是在TextView上 而是可以在整个activity上面

其实 这个很好理解 和http://lipeng88213.iteye.com/blog/1102048
是一样的

1、如果TextView的setonTouchListener返回为false 也就是说TextView不出来这个事件,这时就会向上传递给onTouchEvent 并且后续的也会直接传递给onTouchEvent
反之,就表明setonTouchListener处理这个事件
2、只要加上了onClickListener 就表明TextView会处理这个事件,但是事件会首先传递给setonTouchListener 如果它返回false 就会在up的时候出发click;如果它返回true,click就不会被执行了







分享到:
评论

相关推荐

    安卓Android源码——android 悬浮窗.rar

    【标题】"安卓Android源码——android 悬浮窗.rar" 涉及到的是Android系统中的悬浮窗功能实现,这是Android应用开发中一个相对高级且实用的技术。悬浮窗通常被用于实现类似通知、快捷操作或者辅助工具的功能,可以在...

    Android之泡泡效果bubble.rar

    Android之泡泡效果bubble package com.ray.bubble; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import ...

    Android 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印(源代码)

    该资源主要是参考博文 http://blog.csdn.net/eastmount/article/details/40536247,主要是Android触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印,有四个按钮.点击“打开”从相册中加载一张图片,点击...

    Google play效果 listViewGridView下拉刷新上拉加载更多,图片加载OOm问题

    android 仿google play效果,ListView/GridView下拉刷新,上拉加载更多,自动加载异步请求数据以及分页数据 package net.xinhua.activity; import net.xinhuamm.widget.TouchViewPager; import android.os.Bundle; ...

    Android源码——图片点击震动效果源码.zip

    `setOnTouchListener`则允许更精细的触摸事件处理,包括按下(ACTION_DOWN)、松开(ACTION_UP)等。 4. **点击事件中的震动逻辑**: 在点击事件的回调方法中,可以调用`Vibrator`的`vibrate()`方法来实现震动。...

    android 多点触摸图片缩放的具体实现方法

    imageView.setOnTouchListener((v, event) -> gestureDetector.onTouchEvent(event)); } ``` 在`GestureDetector.SimpleOnGestureListener`的子类中,我们需要重写`onScaleBegin`, `onScale`, 和 `onScaleEnd` ...

    Android源码——柱状图源码.zip

    本资源"Android源码——柱状图源码.zip"提供了实现柱状图功能的Android源代码,对于开发者来说,这是一个很好的学习和参考对象。以下将详细介绍其中可能涉及的关键知识点。 首先,Android中的柱状图通常由自定义...

    安卓Android源码——MyTextview1.rar

    "安卓Android源码——MyTextview1.rar"这个压缩包文件很可能是包含了一个自定义TextView的源代码示例。在这个自定义控件中,开发者可能对系统的默认TextView进行了扩展,增加了额外的功能或者改变了其默认行为,以...

    安卓Android源码——BTAndroidWebViewSelection(webview选择文字).zip

    【Android WebView选择文字详解】 在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容,提供类似浏览器的体验。本项目"BTAndroidWebViewSelection"专注于讲解如何实现WebView中...

    Android onTouchEvent事件中onTouch方法返回值(介绍)

    在Android开发中,触摸事件处理是用户界面交互的关键部分。`onTouchEvent` 是一个重要的方法,用于接收并处理用户对屏幕的触摸操作。本文将详细介绍`onTouchEvent`中`onTouch`方法的返回值及其影响。 `onTouchEvent...

    安卓Android源码——BTWebViewSelection(webview选择文字).zip

    本资源“安卓Android源码——BTWebViewSelection(webview选择文字).zip”专注于讲解如何在Webview中实现文字的选择功能,这对于阅读类、资讯类应用或者任何需要用户进行文本操作的应用来说是必不可少的。...

    android的拖动效果

    本文将重点介绍Android中的几种基本布局类型及其应用场景,并通过一个具体的示例——拖动效果的实现,来进一步探讨如何利用这些布局以及View组件来创建动态用户界面。 #### 二、Android布局类型 Android提供了多种...

    Android ontouch事件处理的三种方式

    在Android开发中,触摸事件是用户与应用交互的关键部分,`onTouchEvent`是处理这些事件的主要方法。本篇文章将深入探讨Android中处理`ontouch`事件的三种常见方式:通过接口实现、使用内部类以及利用匿名内部类。...

    android android 控件跟随手动

    ### Android控件跟随手动移动实现解析 在Android开发过程中,我们常常需要实现一些自定义的交互效果,以增强用户体验或实现特定的功能需求。本篇文章将详细介绍如何通过代码实现一个简单的控件(例如按钮)能够根据...

    安卓Android源码——仿QQ微信登录页面.zip

    Android提供了findViewById()方法来获取XML布局中的控件,并通过setOnTouchListener()或setOnClickListener()监听用户的交互。在登录按钮的点击事件中,开发者会调用getText()方法获取输入值,并进行简单的验证,如...

    安卓Android源码——滑动按钮,滑动锁的实现(已封装好,可直接使用).zip

    在安卓Android应用开发中,滑动按钮和滑动锁是常见的交互元素,它们通常用于开关功能或者确认操作,比如打开/关闭Wi-Fi、调整音量等。本篇将详细讲解如何实现这样的功能,并且提供了一个已经封装好的源码供直接使用...

    arcgis api for android 100.4.0 示例

    《ArcGIS API for Android 100.4.0 实战指南》 ArcGIS API for Android 是Esri公司推出的一款强大的地图开发工具,专为Android平台设计,它允许开发者在Android应用中集成地理信息系统(GIS)功能。版本100.4.0是该...

    安卓Android源码——悬浮Activity并可拖动(访悬浮歌词).zip

    在安卓(Android)平台上,开发人员经常需要实现一些高级功能,比如浮动的活动(Activity),也就是我们常说的悬浮窗。这种技术通常用于创建类似于桌面小部件或者浮动歌词的应用,允许用户在使用其他应用的同时查看...

    android 滑动触摸屏幕事件

    ### Android滑动触摸屏幕事件详解 #### 一、引言 在Android开发中,触摸屏事件处理是一项重要的功能,尤其对于需要用户交互的应用程序来说更是如此。本文将深入探讨一个具体的例子,即如何通过监听触摸屏上的滑动...

Global site tag (gtag.js) - Google Analytics