Android获得控件在屏幕中的绝对坐标
2016-05-13 16:27
537 查看
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)方法
XXX_Activity:
@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);//获取在整个屏幕内的绝对坐标 //do something }
更多资料:
PS:本文为转载,首发地址不可考,网上搜到的全是转载的,故不能贴出原地址,如果你是作者可以留言原地址或者要求删除。
相关文章推荐
- android 去除title标题
- Android热修复实践应用--AndFix
- Android attrs文件(自定义)属性详解
- Android动画之布局动画
- Android开发之本地音乐播放器(简单粗暴版)
- android TransFormexecption 解决
- Android Studio将项目提交到git地址上 github or coding
- Android动画之视图动画和属性动画
- Android中的Notification直接实例化方法deprecated的解决
- Android获取View的高度
- Android Studio入门到精通
- 美团Android DEX自动拆包及动态加载简介
- Android中各种奇葩,难解的Json
- 让Android studio支持java8
- android ndk调用Log.getStackTraceString(new Throwable())输出堆栈信息
- Android 接收服务器指令执行相应操作
- Android横竖屏切换时不销毁Activity
- android——项目结构
- [Android]Kernel的下载和编译
- 读书笔记(11) Android的线程和线程池