Android获取View在屏幕中的位置

public final boolean getLocalVisibleRect (Rect r)  返回一个填充的的rect对象,View的大小,left,top取值都为0.
public final boolean getGlobalVisibleRect (Rect r)获取全局坐标系的一个视图区域,返回一个填充的对象;改rect是基于整个屏幕的。

public void getLocationOnScreen (int[] location)计算该视图在全局坐标系中的x,y值,这个值是从屏幕顶端算起,包含了通知栏的高度。

public void getLocationInWindow (int[] location)计算该视图在他所在的window的x,y值,(获取窗口内的绝对坐标,这个怎么理解?跟上面的getLoactionOnScreen有什么却别?)

public final int getLeft ()
public final int getRight ()
public final int getBottom()
public final int getTop()

上面四个是获取相对于他在父view里的坐标。


※注:如果是在Activity的onCreate()回调里输出上面哪些参数,全为0,必须等所有的UI控件都加载完才能获取到这些。这个详细原因我也不太清楚。

测试代码(参数传入下图的Button控件):


界面:


测试输出:





  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值