zoukankan      html  css  js  c++  java
  • Android坐标getLeft,getRight,getTop,getBottom,getLocationInWindow和getLocationOnScreen

    Android中获取坐标点的一些方法解释

    一、getLocationInWindow和getLocationOnScreen的区别

    // location [0]--->x坐标,location [1]--->y坐标
    int[] location = new  int[2] ;


    // 获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight,  这一组是获取相对在它父窗口里的坐标。

    view.getLocationInWindow(location); 


    // 获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度。
    view.getLocationOnScreen(location);

    如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些。
    在onWindowFocusChanged(boolean hasFocus)中获取为好。

     

    View.getLocationInWindow()和 View.getLocationOnScreen()在window占据全部screen时,返回值相同,不同的典型情况是在Dialog中时。当Dialog出现在屏幕中间时,View.getLocationOnScreen()取得的值要比View.getLocationInWindow()取得的值要大。

    二、Android View坐标getLeft, getRight, getTop, getBottom

    理解坐标,位置概念

    这里涉及坐标系的概念:

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

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

        right = left + width;

        bottom = top + height;

    相应API

    视图左侧位置  view.getLeft()

    视图右侧位置 view.getRight()

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

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

    视图宽度 view.getWidth();

    视图高度 view.getHeight()

     实例分析

    按照我的理解:

    蓝色区域位置 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)

     

    参考:

    http://www.cnblogs.com/zhengbeibei/archive/2013/05/07/3065999.html

    http://www.xuebuyuan.com/1585492.html

    --------------------------------------------------------------------------------

    关注微信公众号(测试工程师小站)即可在手机上查阅,并可接收更多测试分享,发送【测试资料】更可获取百G测试教程~

  • 相关阅读:
    窗口看门狗(WWDG):神舟IV实验
    RTC实验:神舟IV
    C语言运算符优先级
    PWM输出:神舟IV验证
    独立看门狗(IWDG):神舟IV实验
    ADC 转换:神舟IV实验
    输入捕获模式简介
    输入捕获:神舟IV实验
    #ifndef 百度百科
    DAC:神舟IV实验
  • 原文地址:https://www.cnblogs.com/songzhenhua/p/9312782.html
Copyright © 2011-2022 走看看