手记

Android获得控件在屏幕中的绝对坐标

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

location [1]    //y坐标

getLocationOnScreen

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

getLocationInWindow

计算该视图在它所在的widnow的坐标x,y值,获取在整个窗口内的绝对坐标

getLeft , getTop, getBottom,getRight 这一组是获取相对在它父亲里的坐标 
如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些。 
onWindowFocusChanged(boolean hasFocus)中获取为好

即覆写Activity的onWindowFocusChanged(boolean hasFocus)方法 

@Override    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);        int[] location1 = new int[2] ;        view.getLocationInWindow(location1); //获取在当前窗口内的绝对坐标        int[] location2 = new int[2] ;        view.getLocationOnScreen(location2);//获取在整个屏幕内的绝对坐标    }


 原文链接:http://www.apkbus.com/blog-843025-68091.html

0人推荐
随时随地看视频
慕课网APP