关于View的获取位置的api

来源:互联网 发布:linux ssh 目录结构图 编辑:程序博客网 时间:2024/05/15 23:48

之前项目遇到过需要判断点击区域在不在某个View 的范围的判断,渣场api发现4个相关的的方法可用,记录以便以后使用.

View.getLocationInWindow(int[]location);

                View.getLocationOnScreen(int[] location);

                View.getLocalVisibleRect(Rect r);

                View.getGlobalVisibleRect(Rect r);

 

int [] location = new int [2]  ;

                                从getLocationInWindow(int[]location)

                                开始说明;

            getLocationInWindow(),获取当前控件相对父布局的位置,传递一个int数组,将数值存储在数组之中.location[0]为view的原点的x值,location[1]为view的原点的Y值

            getLocationOnScreen(),获取当前控件相对屏幕(包括状态栏)的位置,传递一个int数组,将数值存储在数组之中.location[0]为view的原点的x值,location[1]为view的原点的Y值

                                 在一般情况下这两个方法所取到的值是一样的,当View为dialog时,getLocationOnScreen(),所获取到的值比getLocationInWindow()大;

                

                  Rect r = new Rect();

                

                 


                

                  getLocalVisibleRect(r);

                   getGlobalVisibleRect(r);

                  

                   Rect 类中有(left,top, right bottom)这么四个主要的属性

                                               分别记录 view的左上点的坐标,和右下角的坐标

                                               由于Rect类默认就是一个长方形,所以android的工程师使用这两个点来确定一个矩形区域

                   getLocalVisibleRect(r);传一个Rect 对象,返回一个将值存储于Rect中,获取视图本身可见的坐标区域,坐标以自己的左上角为原点(0,0)

                                               如果没有超出屏幕范围显示范围一般为(0,0-右下角x,右下角y)

                   getGlobalVisibleRect()方法的作用是获取视图在屏幕坐标中的可视区域,即所见View的具体坐标

                   Rect中有contains(x,y)方法,判断某个坐标是不是为View之中

                                               此外      getGlobalVisibleRect(Rect r, PointgobalOffset)还有这个方法,返回   globalOffset的值就是View原点偏离屏幕坐标原点的距离。         

(r);

                   getGlobalVisibleRect(r);

                  

                   Rect 类中有(left,top, right bottom)这么四个主要的属性

                                               分别记录 view的左上点的坐标,和右下角的坐标

                                               由于Rect类默认就是一个长方形,所以android的工程师使用这两个点来确定一个矩形区域

                   getLocalVisibleRect(r);传一个Rect 对象,返回一个将值存储于Rect中,获取视图本身可见的坐标区域,坐标以自己的左上角为原点(0,0)

                                               如果没有超出屏幕范围显示范围一般为(0,0-右下角x,右下角y)

                   getGlobalVisibleRect()方法的作用是获取视图在屏幕坐标中的可视区域,即所见View的具体坐标

                   Rect中有contains(x,y)方法,判断某个坐标是不是为View之中

                                               此外      getGlobalVisibleRect(Rect r, PointgobalOffset)还有这个方法,返回   globalOffset的值就是View原点偏离屏幕坐标原点的距离。         

0 0
原创粉丝点击