Android View坐标getLeft, getRight, getTop, getBottom

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)

时间: 2024-12-31 23:29:04

Android View坐标getLeft, getRight, getTop, getBottom的相关文章

android view之getLeft(),getRight(),getTop(),getBottom(),getX(),getY(),getRawX(),getRawY(),getTranslationX(),getTranslationY()记录

自定义view时使经常使用到的view距离及坐标记录 如下 第一:view中一般用于获取view宽高 getLeft()        view本身左侧   距离父布局左侧   的距离 getRight()      view本身右侧   距离父布局左边侧  的距离 getTop()         view本身顶部   距离父布局顶部    的距离 getBottom()    view本身底部   距离父布局顶部   的距离 View的  Height = view.getBottom()

View的getLeft, getRight, getTop, getBottom

View的getLeft, getRight, getTop, getBottom方法得到的分别是相对于其父组件不同方向的距离 网上找了张图说明: 其中right和left的计算方法如下: right = left + width; bottom = top + height;

关于 android 的 view.getLeft(), getRight(), getTop(), getBottom() 的一些疑惑(坑)解答

(原创) 今天在做下滑刷新的时候碰到 view 的四个 get 函数有点特别,具体遇到的问题如下,经反复测试和查找资料,填坑如下: 1,为什么我有时候在使用getLeft(), getRight(), getTop(), getBottom()它们得到的结果是0? 答: 出现这种情况可能是在刚启动程序,程序刚开始绘制 view 的时候,你马上使用代码去捕获上面的值.这个时候,由于view 是刚开始绘制的,你得到的就会是 0. 验证我上面的说法: new 一个线程,使用Thread.Sleep(l

Android View坐标Left, Right, Top, Bottom

1.分析说明Left, Right, Top, Bottom View中对于该字段说明如下,相对父布局的的位置 相对父布局的左边位置 Left 相对父布局的右边位置 Right 相对父布局的左上边位置 Top 相对父布局的下边位置 Bottom 对于上述的理解可以根据二位坐标系来理解,(left,right),(top,bottom) 2,对应API的调用如下: 视图左侧位置 mView.getLeft(); 视图右侧位置 mView.getRight(); 视图上侧位置 mView.getTo

那些你应该知道却不一定知道的——View坐标分析汇总

前方高能~ 本文版权所有,转载请注明:http://blog.csdn.net/mr_immortalz/article/details/51168278 一.概述 网上关于Android 的view坐标挺多的,写这篇的目的是因为网上搜到的文章大多较简单,几乎都是简单的介绍下获取的几个方法坐标的几个方法罢了,但在实战中,你会发现可能你学会的那几个获取坐标的方法并没有正确的使用,导致当你要计算坐标的时候可能会试过几遍才找到正确的办法(其实这也正是我容易混淆的地方,所以特地写篇博客记录下) 关于那几

Android 坐标与宽高研究getLeft() getTop() getRight()和getBottom()

把view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离. getRight() =getLeft() + getWidth() getBottom()= getTop() + getHeight() 一.坐标研究一 每个view group包含一个宽度和高度(layout_width和layout_height),每个view必须定义它们.很多LayoutParams也包括可选的margin(空白)和border(边界). 你可以使用精确值来指定宽度和高度,

Android View分区域点击实现方案——1.根据坐标范围

Android View分区域点击实现方案--1.根据坐标范围 引言 好哒,很久没更新博客里关于Android的博文了,有小伙伴经常在群里问或者私聊我: 读者:"Android进阶什么时候出,写什么Git,数据结构,专心写Android进阶-"之类的话, 对此表示我很无奈: 我: 读者: 我:好吧,怪我- 嗯,不是自己不想写,主要是自己现在的事情比较多,接触的东西越多,学的东西越多, 除了要完成公司项目外,还有一些其他的东西要学,前段时间刚做完电台的项目,现在 要和另外一个同事搞Lau

Android必知必会-获取View坐标和长宽的时机

如果移动端访问不佳,请访问–>Github版 背景 最近要实现一个功能,用到了一些属性动画,需要获取一些View的坐标信息,设计图如下: 这里我使用的是DialogFragment来实现的,可以复用. 先贴一下获取View坐标的一些资料: Android View各种尺寸位置相关的方法探究 Android获得控件在屏幕中的绝对坐标 合适的时机 要想获得View的坐标和长宽,必须要等到View绘制完毕,在平常写代码的生命周期函数内一般是获取不到的: //Activity onCreate(); o

Android View的定位

引言 今天我们来介绍Android坐标系统和View的定位,当然也会介绍View的滑动相关话题.下面让我们开始介绍吧. View的基础知识 View是Android中所有控件的基类,无论是TextView.Button.还是RelativeLayout和ListView它们共同的基类都是View.View是一种界面层控件的抽象,它代表了一个控件.ViewGroup翻译过来是控件组的意思,ViewGroup中可以包含多个子控件,即一组View.在Android中ViewGroup也继承自View,