Android 根据坐标获取控件方法

2024-06-19 13:08

本文主要是介绍Android 根据坐标获取控件方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.2cto.com/kf/201501/370226.html

http://www.2cto.com/kf/201501/370226.html

http://www.2cto.com/kf/201501/370226.html

http://www.2cto.com/kf/201501/370226.html


Android 根据坐标获取控件方法
2015-01-15       0 个评论    来源:陈英有  
收藏     我要投稿
id="iframeu2597680_0" src="http://pos.baidu.com/lcbm?sz=650x180&rdid=2597680&dc=2&di=u2597680&dri=0&dis=0&dai=4&ps=329x96&coa=at%3D3%26rsi0%3D650%26rsi1%3D180%26pat%3D1%26tn%3DbaiduCustNativeAD%26rss1%3D%2523F9F9F9%26conBW%3D0%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0%26tft%3D0%26tlt%3D1%26ptbg%3D90%26piw%3D140%26pih%3D90%26ptp%3D1&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1475034420591&ti=Android%20%E6%A0%B9%E6%8D%AE%E5%9D%90%E6%A0%87%E8%8E%B7%E5%8F%96%E6%8E%A7%E4%BB%B6%E6%96%B9%E6%B3%95%20-%20Android%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0_%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8F%91%20-%20%E7%BA%A2%E9%BB%91%E8%81%94%E7%9B%9F&ari=2&dbv=2&drs=1&pcs=1153x587&pss=1153x340&cfv=0&cpl=5&chi=1&cce=true&cec=GBK&tlm=1473529717&rw=587&ltu=http%3A%2F%2Fwww.2cto.com%2Fkf%2F201501%2F370226.html&ltr=http%3A%2F%2Fwww.2cto.com%2Fkf%2F201501%2F370226.html&ecd=1&psr=1280x800&par=1280x705&pis=-1x-1&ccd=24&cja=false&cmi=7&col=zh-CN&cdo=-1&tcn=1475034422&qn=b34d350ff5a95cdb&tt=1475034419816.1906.2300.2301" width="650" height="180" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/**
      * 根据坐标获取相对应的子控件<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 ;
     }
</view>


这篇关于Android 根据坐标获取控件方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075114

相关文章

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

Java五子棋之坐标校正

上篇针对了Java项目中的解构思维,在这篇内容中我们不妨从整体项目中拆解拿出一个非常重要的五子棋逻辑实现:坐标校正,我们如何使漫无目的鼠标点击变得有序化和可控化呢? 目录 一、从鼠标监听到获取坐标 1.MouseListener和MouseAdapter 2.mousePressed方法 二、坐标校正的具体实现方法 1.关于fillOval方法 2.坐标获取 3.坐标转换 4.坐

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

计算绕原点旋转某角度后的点的坐标

问题: A点(x, y)按顺时针旋转 theta 角度后点的坐标为A1点(x1,y1)  ,求x1 y1坐标用(x,y)和 theta 来表示 方法一: 设 OA 向量和x轴的角度为 alpha , 那么顺时针转过 theta后 ,OA1 向量和x轴的角度为 (alpha - theta) 。 使用圆的参数方程来表示点坐标。A的坐标可以表示为: \[\left\{ {\begin{ar

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c