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应用开发中一个相对高级且实用的技术。悬浮窗通常被用于实现类似通知、快捷操作或者辅助工具的功能,可以在...
Android之泡泡效果bubble package com.ray.bubble; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import ...
该资源主要是参考博文 http://blog.csdn.net/eastmount/article/details/40536247,主要是Android触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印,有四个按钮.点击“打开”从相册中加载一张图片,点击...
android 仿google play效果,ListView/GridView下拉刷新,上拉加载更多,自动加载异步请求数据以及分页数据 package net.xinhua.activity; import net.xinhuamm.widget.TouchViewPager; import android.os.Bundle; ...
`setOnTouchListener`则允许更精细的触摸事件处理,包括按下(ACTION_DOWN)、松开(ACTION_UP)等。 4. **点击事件中的震动逻辑**: 在点击事件的回调方法中,可以调用`Vibrator`的`vibrate()`方法来实现震动。...
imageView.setOnTouchListener((v, event) -> gestureDetector.onTouchEvent(event)); } ``` 在`GestureDetector.SimpleOnGestureListener`的子类中,我们需要重写`onScaleBegin`, `onScale`, 和 `onScaleEnd` ...
本资源"Android源码——柱状图源码.zip"提供了实现柱状图功能的Android源代码,对于开发者来说,这是一个很好的学习和参考对象。以下将详细介绍其中可能涉及的关键知识点。 首先,Android中的柱状图通常由自定义...
"安卓Android源码——MyTextview1.rar"这个压缩包文件很可能是包含了一个自定义TextView的源代码示例。在这个自定义控件中,开发者可能对系统的默认TextView进行了扩展,增加了额外的功能或者改变了其默认行为,以...
【Android WebView选择文字详解】 在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中内嵌网页内容,提供类似浏览器的体验。本项目"BTAndroidWebViewSelection"专注于讲解如何实现WebView中...
在Android开发中,触摸事件处理是用户界面交互的关键部分。`onTouchEvent` 是一个重要的方法,用于接收并处理用户对屏幕的触摸操作。本文将详细介绍`onTouchEvent`中`onTouch`方法的返回值及其影响。 `onTouchEvent...
本资源“安卓Android源码——BTWebViewSelection(webview选择文字).zip”专注于讲解如何在Webview中实现文字的选择功能,这对于阅读类、资讯类应用或者任何需要用户进行文本操作的应用来说是必不可少的。...
本文将重点介绍Android中的几种基本布局类型及其应用场景,并通过一个具体的示例——拖动效果的实现,来进一步探讨如何利用这些布局以及View组件来创建动态用户界面。 #### 二、Android布局类型 Android提供了多种...
在Android开发中,触摸事件是用户与应用交互的关键部分,`onTouchEvent`是处理这些事件的主要方法。本篇文章将深入探讨Android中处理`ontouch`事件的三种常见方式:通过接口实现、使用内部类以及利用匿名内部类。...
### Android控件跟随手动移动实现解析 在Android开发过程中,我们常常需要实现一些自定义的交互效果,以增强用户体验或实现特定的功能需求。本篇文章将详细介绍如何通过代码实现一个简单的控件(例如按钮)能够根据...
Android提供了findViewById()方法来获取XML布局中的控件,并通过setOnTouchListener()或setOnClickListener()监听用户的交互。在登录按钮的点击事件中,开发者会调用getText()方法获取输入值,并进行简单的验证,如...
在安卓Android应用开发中,滑动按钮和滑动锁是常见的交互元素,它们通常用于开关功能或者确认操作,比如打开/关闭Wi-Fi、调整音量等。本篇将详细讲解如何实现这样的功能,并且提供了一个已经封装好的源码供直接使用...
《ArcGIS API for Android 100.4.0 实战指南》 ArcGIS API for Android 是Esri公司推出的一款强大的地图开发工具,专为Android平台设计,它允许开发者在Android应用中集成地理信息系统(GIS)功能。版本100.4.0是该...
在安卓(Android)平台上,开发人员经常需要实现一些高级功能,比如浮动的活动(Activity),也就是我们常说的悬浮窗。这种技术通常用于创建类似于桌面小部件或者浮动歌词的应用,允许用户在使用其他应用的同时查看...
### Android滑动触摸屏幕事件详解 #### 一、引言 在Android开发中,触摸屏事件处理是一项重要的功能,尤其对于需要用户交互的应用程序来说更是如此。本文将深入探讨一个具体的例子,即如何通过监听触摸屏上的滑动...