Android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度

本文介绍了如何在Android中获取屏幕尺寸、标题栏以及状态栏的高度。通过DisplayMetrics获取屏幕宽度和高度,使用getWindowVisibleDisplayFrame计算状态栏高度,并结合布局来确定标题栏高度。同时,探讨了getLocationOnScreen和getLocationInWindow在获取视图坐标上的区别。

1.屏幕尺寸,源代码如下:

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int screenWidth=metrics.widthPixels;            //屏幕宽度
    int .screenHeight=metrics.heightPixels;        //屏幕高度

     这段代码可以插入到Activity的onCreate()函数中。


2.获取标题栏、状态栏高度:

    Rect rect = new Rect(); 
    Window win = this.getWindow(); 
    win.getDecorView().getWindowVisibleDisplayFrame(rect); 
    int statusBarHeight = rect.top; 
    int contentViewTop = win.findViewById(Window.ID_ANDROID_CONTENT).getTop(); 
    int titleBarHeight = contentViewTop - Variable.statusBarHeight;    

//statusBarHeight为状态栏高度,titleBarHeight为标题栏高度

getLocationOnScreen 计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 
getLocationInWindow 计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标

getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标


int[] location = new  int[2] ;
view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标
view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标
location [0]--->x坐标,location [1]--->y坐标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值