版权声明:本文为博主原创文章,未经博主允许不得转载. 最近做项目时,发现在activity的onCreate()和onResume()方法里调用View.getLocationInWindow() 时,View.getLocationInWindow()返回空值,觉得很奇怪,因为以前用过,没有发现这个问题,于是调查了一下源码,这里把调查结果 做个记录. 首先,看看View.getLocationInWindow()的实现, public void getLocationInWindow(int[…
Android中获取坐标点的一些方法解释 一.getLocationInWindow和getLocationOnScreen的区别 // location [0]--->x坐标,location [1]--->y坐标 int[] location = new  int[2] ; // 获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight,  这一组是获取相对在它父窗口里的坐标. view.getLocationInWindow(location…
(原创) 今天在做下滑刷新的时候碰到 view 的四个 get 函数有点特别,具体遇到的问题如下,经反复测试和查找资料,填坑如下: 1,为什么我有时候在使用getLeft(), getRight(), getTop(), getBottom()它们得到的结果是0? 答: 出现这种情况可能是在刚启动程序,程序刚开始绘制 view 的时候,你马上使用代码去捕获上面的值.这个时候,由于view 是刚开始绘制的,你得到的就会是 0. 验证我上面的说法: new 一个线程,使用Thread.Sleep(l…
把view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离. getRight() =getLeft() + getWidth() getBottom()= getTop() + getHeight() 一.坐标研究一 每个view group包含一个宽度和高度(layout_width和layout_height),每个view必须定义它们.很多LayoutParams也包括可选的margin(空白)和border(边界). 你可以使用精确值来指定宽度和高度,…
View的getLeft, getRight, getTop, getBottom方法得到的分别是相对于其父组件原点坐标不同方向的距离 网上找了张图说明: 其中right和left的计算方法如下: right = left + width; bottom = top + height;…
1  引起疑惑 分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义. 2  理解坐标,位置概念 这里涉及坐标系的概念: 坐标系在二维视图中通过X轴和Y轴两个数字为组合表示某个点的绝对坐标. 例如(30, 100) 通常表示X轴30, Y轴100交叉的一个点 在Android中可以把left相当于X轴值, top相当于Y轴值, 通过这两个值Android系统可以知道视图的绘制起点,在通过Wdit…
需要确定组件在父窗体中的坐标时,使用getLocationInWindow,需要获得组件在整个屏幕的坐标时,使用getLocationOnScreen. 其中location [0]代表x坐标,location [1]代表y坐标. 1 int[] location = new int[2] ; 2 3 /**获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父窗口里的坐标.*/ 4 view.getLocationInW…
说来说去都不如 画图示意 简单易懂啊!!!真是的! 来吧~~先上张图~~! (一)首先明确一下 android 中的坐标系统 :      屏幕的左上角是坐标系统原点(0,0)      原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向   (二)关于Scroll: 屏幕显示的内容很多时,会有超出一屏的情况,于是就产生了Scroll的概念.         在View类中有个方法:       getScrollY()  英文原文描述是:       Return the scrolled t…
注意: OnCreate()函数中 调用下面函数,结果全为0,要等UI控件都加载完了才能得到绘制时的值. getHitRect 以父控件的左上为原点,计算当前view在父控件的区域,不管父控件在屏幕的什么位置 getDrawingRect 以scrollX,scrollY为原点,按当前view的width,height计算当前view在滚动后的可绘制区域, getLocalVisibleRect 以自己的左上角为原点(0,0), 计算出当前view的可视区域,当前view的实际大小减去超出屏幕或…
getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =.)getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标如果在Activity的OnCreate()事件输出那些参数,是全为0,要等…