Android View坐标getLeft, getRight, getTop, getBottom解惑

Android 获取控件getLeft为0的解决方案 在app开发中,在加载页面的时候,获取控件的坐标也是常有的功能,但是会发现在onCreate(),onResume()中,来获取控件的 getLeft(),getTop(),getBottom(),getRight(),都为0,明明是有坐标点的为什么就是获取不到 例如如下的获取方式: @Override protected void onCreate(Bundle savedInstanceState) { mTxt_style = findViewById(R.id.txt_setstyl 阅读详情


摘要 1 引起疑惑 分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义。 2 理解坐标,位置概念 这里涉及坐标系的概念: 坐标系在二维视图中通过X轴和Y轴两个数字为组合表示某个点的绝对坐

1  引起疑惑

   分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义。



2  理解坐标,位置概念

     这里涉及坐标系的概念:

坐标系在二维视图中通过X轴和Y轴两个数字为组合表示某个点的绝对坐标。
例如(30, 100) 通常表示X轴30, Y轴100交叉的一个点

   在Android中可以把left相当于X轴值, top相当于Y轴值, 通过这两个值Android系统可以知道视图的绘制起点,在通过Wdith 和 Height 可以得到视图上下左右具体值,就可以在屏幕上绝对位置绘制视图。right 与 bottom计算如下:

   right = left + width;

   bottom = top + height;


3 相应API

视图左侧位置  view.getLeft()

视图右侧位置 view.getRight()

视图顶部位置 view.getTop();

视图底部位置 view.getBottom();

视图宽度 view.getWidth();

视图高度 view.getHeight()


4  实例分析



按照我的理解:

蓝色区域位置 left = 0,   top = 0         坐标(0, 0 )

黄色区域位置 left = 60, top = 115    坐标(60, 115)

绿色区域位置 left = 115, top = 170  坐标(115, 170)  

绿色区域,这里理解错误,我认为绿色区域的位置是针对于蓝色区域的(0, 0)坐标的值,从上图的右下角打印出的坐标值就可以看出与下方我列出的值不一致,看看下面的图就明白了






总结: 视图的left , top , right , bottom 的值是针对其父视图的相对位置, 绿色区域是针对其父视图(即黄色区域为(0, 0)点)的坐标,不应该是(115, 170 ) 而是 (55, 55)

点云配准实战:用DGCNN+Transformer+SVD搞定3D模型对齐(附PyTorch代码) 本文详细介绍了基于深度学习的点云配准实战方法,重点解析了Deep Closest Point (DCP)模型。该模型融合了DGCNN、Transformer和可微分SVD三大核心模块,能够端到端地预测点云间的刚性变换,有效克服传统ICP算法对初始位置敏感、易陷入局部最优的缺点。文章提供了完整的PyTorch代码实现、ModelNet40数据集处理、训练策略及显存优化技巧,旨在帮助开发者在机器人、自动驾驶等领域实现精准的3D模型对齐。 阅读详情

相关推荐

pentaho-kettle依赖拉取失败?试试这个Maven仓库配置的终极解决方案

本文详细解析了Pentaho Kettle依赖拉取失败的常见原因,并提供了三种Maven仓库配置方案,包括基础pom.xml配置、全局settings.xml设置以及企业级私有镜像仓库搭建。通过实战验证的方法和常见问题排查指南,帮助开发者彻底解决pentaho-kettle依赖问题,提升项目构建效率。

weixin_30275415的博客 205

Android View坐标系详解(getTop()、getX、getTranslationX...)

http://blog.youkuaiyun.com/u013872857/article/details/53750682 View 提供了如下 5 种方法获取 View 的坐标: 1. View.getTop()、View.getLeft()、View.getBottom()、View.getRight(); 2. View.getX()、View.getY(); 3. View.getTrans

xxzjwdnlwx的专栏 1037

如何在Ubuntu 22.04上为AlphaFold3配置NVIDIA A100 GPU(含驱动安装避坑指南)

本文提供了在Ubuntu 22.04系统上为AlphaFold3部署NVIDIA A100 GPU的完整安装教程。内容涵盖从系统环境准备、NVIDIA驱动安装与避坑指南,到Docker容器化部署、数据库获取以及最终构建运行AlphaFold3的详细步骤,旨在帮助研究者和开发者高效配置高性能计算环境,充分发挥A100的硬件潜力。

nft7creator的博客 468

android 坐标系详解 (getTop、getLeft、getRawX......)

这是手动画的有点丑,将就可以看,这是不知道看第几次了,但是过一段时间就忘记了,好记性不如手动再记录一下加深印象。 Android 坐标系分三类 1、屏幕坐标系:以屏幕(0.0),X轴向右,y轴向下的方向 2.布局坐标系: 该坐标系是以 viewgroup 的左上角为坐标原点, 水平向右代表 x 方向的正方向, 垂直向下代表 y 方向的正方向, view 的坐标是在 layout 布局过程中做...

qq_34900897的博客 1104

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

Transformer代码(Pytorch实现和详解)!!!

这个是第一版,有些代码如果不对,欢迎在评论指正,后续会慢慢改,我也是刚接触transformer,若有些地方理解不对还请指正。

xml的博客 5613

android gettop activity,android 获取view的getLeft(), getRight(), getTop(), getBottom()为0

问题描述当我们在onCreate()回调方法中去调用getLeft(), getRight(), getTop(), getBottom()、getLocationInWindow等值为0问题原因View的显示必须经历Measure(测量)、Layout(布局)和Draw(绘制)过程。而在Measure与Layout过程完成之后,View的width、height、top、left等属性才被正确赋...

weixin_42299066的博客 467

【数据结构】面试题整理 共36题

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。与数组不同,链表中的元素在内存中不必是连续存储的,这使得链表在插入和删除操作时非常高效。单向链表(Singly Linked List):每个节点只包含一个指向下一个节点的指针。双向链表(Doubly Linked List):每个节点包含两个指针,一个指向下一个节点,一个指向前一个节点。循环链表(Circular Linked List):链表的最后一个节点指向第一个节点,形成一个环。

weixin_44329069的博客 7200

关于getTop获取值为0与activity因设配配置重启焦点位子的问题

写在前面:       关于碰到这2个问题是在我做tv端动画的时候碰到,当时的情景是:想让view获得焦点时,显示一个上下移动的动画 尴尬的是我切换语言再回到activity是的时候view移到了界面的顶端.   分析:1.焦点问题,当activity重启的时候尽管我没有在saveInstance中存储相关的的数据,但恢复之后焦点还是在之前的view上,而不是第一次启动activity时的...

baibaibaixiaochun的博客 1136

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 897

PCIe链路训练Recovery状态机:从RcvrLock到链路稳定的关键路径

本文深入解析PCIe链路训练中的Recovery状态机,特别是RcvrLock状态的关键作用。从Block对齐、均衡预设值应用到状态转移条件,详细介绍了确保链路稳定的技术要点,并提供了高速率下的特殊处理方法和常见问题排查指南,帮助工程师解决PCIe链路不稳定问题。

weixin_28739079的博客 175

天天记录 - Android View坐标getLeft, getRight, getTop, getBottom

1  引起疑惑     分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义。     2  理解坐标,位置概念       这里涉及坐标系的概念: 坐标系在二维视图中通过X轴和Y轴两个数字为组合表示某个点的绝对坐标。 例如(30, 100) 通常表示X轴30, Y轴100交叉

Android 1万+

嵌入式开发环境Vscode开发STM32单片机程序

STM32单片机非常强大,大多数教程都是使用 keil 编译器,keil 是收费的而 gcc 是开源免费的。这里介绍一些使用 gcc +开发单片机程序的经验。(这里不解释 gcc 是什么)。

嵌入式技术开发 1844

android开发中view的getTop getLeft getBottom getRight返回的坐标点不包括view的margin

android开发中view的getTop getLeft getBottom getRight返回的坐标点不包括view的margin android开发中view的getTop getLeft getBottom getRight返回的坐标点不包括view的margin 但包括view的padding 例如: <?xml version="1...

开心小肉妞的天空 488

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android View坐标getLeft, getRight, getTop, getBottom

1 引起疑惑 分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义。 2 理解坐标,位置概念 这里涉及坐标系的概念: 坐标系在二维视图中通过X轴和Y轴两个数字为组合表示某个点的绝对坐标。 例如(30, 100) 通常表示X轴30,...

207

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: ViewGroup为什么不会调用onDraw
下一篇: android 使用ViewFlow实现左右滑动
llyofdream
博客等级 码龄16年 74粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值