前言
我们经常会看到以下几个方法:
getGlobalVisibleRect()
getLocalVisibleRect()
getLocationOnScreen()
getLocationInWindow()
傻傻分不清? 今天我们简单介绍一下它们各自的作用
getGlobalVisibleRec
方法作用:
其一: 用于判断控件是否可见, 以屏幕为参考 如果可见返回true, 不可见返回false, 我们可以借助该方法检测控件是否被滑出屏幕外
其二: 用于获取控件可见区域的坐标, 这个坐标是相对于屏幕而言
坐标存放在了Rect
对象中, 以参数的形式传入:
1 | getGlobalVisibleRect(new Rect) |
getLocalVisibleRect
这个方法和上面的getGlobalVisibleRec
方法类似, 唯一区别是参考系不同, 这个方法参考系是控件本身
以下是这两个方法的坐标打印:
getLocationOnScreen
获取控件相对于屏幕而言的坐标位置, 与可不可见无关
getLocationInWindow
获取控件相对于父控件而言的坐标位置, 与可不可见无关
坐标补充
我们在进行自定义控件绘制的时候, 总是容易被一些参数给绕的头晕脑涨, 什么top right, left, bottom
, 四条边与屏幕的距离等等, 想想就觉得费劲, 再加上Android
中坐标系和我们数学中的坐标系不一致 使得我们在进行计算的时候难免有点吃不消
实际上对于一些规则的图形绘制, 比如矩形, 我们需要明白的一点, 那就是只需要两个点的坐标即可绘制出来, 也就是两个对角点
那我们在进行图形绘制的时候, 将计算范围缩小, 焦点集中在两个对角坐标位置计算上即可
这两个对角可以使左上角右下角, 也可以是左下角和右上角
这样一想, 那么所谓的left
和top
实际就是左上角的xy
坐标, 而right
和 bottom
就是右下角的坐标
本文为作者原创 转载时请注明出处 谢谢