//根据坐标返回触摸到的View
private View getTouchTarget(View rootView, int x, int y) {
View targetView = null;
// 判断view是否可以聚焦
ArrayList<View> touchableViews = rootView.getTouchables();
for (View touchableView : touchableViews){
if (isTouchPointInView(touchableView, x, y)){
targetView = touchableView;
break;
}
}
return targetView;
} //(x,y)是否在view的区域内
private boolean isTouchPointInView(View view, int x, int y) {
if (view == null){
return false;
}
int[] position = new int[2];
view.getLocationOnScreen(position);
int left = position[0];
int top = position[1];
int right = left + view.getMeasuredWidth();
int bottom = top + view.getMeasuredHeight();
if (x >= left && x <= right && y >= top && y <= bottom){
return true;
}
return false;
} 示例:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//获取当前触摸到的View
final View touchedView = getTouchTarget(mContentView,(int) ev.getX(), (int) ev.getY());
return super.dispatchTouchEvent(ev);
}

android 根据坐标返回触摸到的View的更多相关文章

  1. Android事件处理之多点触摸与手势识别

    一.Muilti-touch 双指缩放的实现探索: 首先要实现OnTouchListener接口,然后重写方法: public boolean onTouch(View v, MotionEvent ...

  2. Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解

    Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆 ...

  3. Android绘图机制(一)——自定义View的基础属性和方法

    Android绘图机制(一)--自定义View的基础属性和方法 自定义View看起来,确实看起来高深莫测,很多Android开发都不是特别在行这一块,这里面的逻辑以及一些绘画都是有一点难的,说一下我目 ...

  4. Android开发艺术探索(三)——View的事件体系

    一.View基础知识 主要介绍内容有:View的位置参数.MotionEvent和TouchSlope对象.VelocityTracker.GestureDetector和Scroller对象 1.什 ...

  5. Android学习之多点触摸并不神秘

    最近研究了一下多点触摸,写了个利用多点触摸来控制图片大小和单点触摸控制图片移动的程序,和大家分享分享. Android中监听触摸事件是onTouchEvent方法,它的参数为MotionEvent,下 ...

  6. 一步一步学android之事件篇——触摸事件

    触摸事件顾名思义就是触摸手机屏幕触发的事件,当用户触摸添加了触摸事件的View时,就是执行OnTouch()方法进行处理,下面通过一个动态获取坐标的例子来学习OnTouchListener事件,效果如 ...

  7. Android艺术开发探索第三章————View的事件体系(下)

    Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动 ...

  8. Android艺术开发探索第三章——View的事件体系(上)

    Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...

  9. cocos2d-x在android中响应返回键编译报错的bug分析

    先看一段代码如何在Android中加入返回按键的响应 <span style="font-size:18px;">自己派生CCKeypadDelegate的子类,然后注 ...

随机推荐

  1. DK1.5-JDK11各个新特性

    摘要: 参考文献: https://blog.csdn.net/lsxf_xin/article/details/79712537 JDK各个版本的新特性 要了解一门语言,最好的方式就是要能从基础的版 ...

  2. 8.python内置模块之random模块简介

    Python中的random模块用于生成随机数. 常用的7个函数: 1.random.random():返回一个[0,1)之间的随机浮点值(双精度) 2.random.uniform(a,b):返回[ ...

  3. 并发编程之J.U.C的第二篇

    并发编程之J.U.C的第二篇 3.2 StampedLock 4. Semaphore Semaphore原理 5. CountdownLatch 6. CyclicBarrier 7.线程安全集合类 ...

  4. Oracle v$session视图显示客户端IP地址

    在Oracle数据库中,我们使用session相关视图(v$session.v$active_session_history,dba_hist_active_session_history等)查找问题 ...

  5. ArcGIS Engine开发碰到问题及解决方式

    1.问题描述——运行提示:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any Arc ...

  6. 逻辑卷管理(LVM)-快照

    1.需要在逻辑卷相同的卷组中创建逻辑卷快照.-s :表示快照  -p r:表示只读  /dev/vg0/mysql 为那个卷的快照 2.查看快照卷信息. 3.快照恢复,必须先取消挂载,还原成功之后,快 ...

  7. java new一个对象的过程中发生了什么?

    java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载.加载并初始化类完成后,再进行对象的创建工作. 我们先假设是第一次使用该类,这样的话n ...

  8. 使用centos6.5整理出来的常用命令

    1.Vi 基本操作1) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插 ...

  9. API接口幂等性设计

    目录 幂等性场景 解决方案 幂等性场景 网络延迟导致多次重复提交. 表单重复提交. 解决方案 每次提交都使用一个Token,Token保证临时且唯一即可 token生成规则(单机应用):token+U ...

  10. 在VS的依赖项中引用项目

    操作步骤:鼠标右击项目(注意是项目)->添加->引用->项目(在项目列表中选择需要引用的项目)->确定