/** * 根据坐标获取相对应的子控件<br> * 在Activity使用 * * @param x坐标 * @param y坐标 * @return 目标View */ public View getViewAtActivity(int x, int y) { // 从Activity里获取容器 View root = getWindow().getDecorView(); return findViewByXY(root, x, y); } /** * 根据坐标获取相对应的子控件<br> * 在重写ViewGroup使用 * * @param x坐标 * @param y坐标 * @return 目标View */ public View getViewAtViewGroup(int x, int y) { return findViewByXY(this, x, y); } private View findViewByXY(View view, int x, int y) { View targetView = null; if (view instanceof ViewGroup) { // 父容器,遍历子控件 ViewGroup v = (ViewGroup) view; for (int i = 0; i < v.getChildCount(); i++) { targetView = findViewByXY(v.getChildAt(i), x, y); if (targetView != null) { break; } } } else { targetView = getTouchTarget(view, x, y); } return targetView; } private View getTouchTarget(View view, int x, int y) { View targetView = null; // 判断view是否可以聚焦 ArrayList<View> TouchableViews = view.getTouchables(); for (View child : TouchableViews) { if (isTouchPointInView(child, x, y)) { targetView = child; break; } } return targetView; } private boolean isTouchPointInView(View view, int x, int y) { int[] location = new int[2]; view.getLocationOnScreen(location); int left = location[0]; int top = location[1]; int right = left + view.getMeasuredWidth(); int bottom = top + view.getMeasuredHeight(); if (view.isClickable() && y >= top && y <= bottom && x >= left && x <= right) { return true; } return false; } 详细解决方案
Android 依据坐标获取控件方法
热度:66 发布时间:2016-04-28 02:47:38.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android RadioButton如何设置默认选中
- android 怎么重新设置锚点
- android 图片对象获取的有关问题
- android 关于服务连接的疑义
- android 怎么实现对view的放大和缩小
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java) 中文乱码的有关问题
- android 动态设立控件高度
- Android test project 编译方法
- android 4.03启动出错,显示"Encryption Unsuccessful"该如何解决
- Android 下面的listView的动态效果怎么实现的?求源代码,多谢
- Android?Palm?Symbian?Windows Mobile?学哪个有“钱图”?解决方案
- Android 开发语言,该怎么解决
- 单个人去做手机开发选什么平台好?android,iphone?解决办法
- Android 虚拟机崩溃的有关问题
- 想学学移动平台的开发 android 还是windows phone7好啊该怎么处理
- Android 上的如何读写设备文件
- Android 2.2 API 汉语文档系列(3) —— AccessibilityService
- 【先睹为快】ArcGIS Android SDK上一版本新特性
- ArcGIS for Android app v2.0.4公布
- android.hardware.USB种介绍
- android linux开发 在线电子书解决方案