getLocationInWindow和getLocationOnScreen的区别

// location [0]--->x坐标,location [1]--->y坐标
int[] location = new  int[2] ;
// 获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight,  这一组是获取相对在它父窗口里的坐标。
view.getLocationInWindow(location); 
// 获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度。
view.getLocationOnScreen(location);

如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些。
在onWindowFocusChanged(boolean hasFocus)中获取为好。

View.getLocationInWindow()和 View.getLocationOnScreen()在window占据全部screen时,返回值相同,不同的典型情况是在Dialog中时。当Dialog出现在屏幕中间时,View.getLocationOnScreen()取得的值要比View.getLocationInWindow()取得的值要大。

另:Android 获取屏幕高度、标题高度、状态栏高度详解

// 获取屏幕的宽、高
DisplayMetrics mDisplayMetrics;
getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics);
int w = mDisplayMetrics.widthPixels;
DisplayMetrics dm = getResources().getDisplayMetrics();
mScreenW = dm.widthPixels; // 获取分辨率宽度

原文:http://www.xuebuyuan.com/1585492.html

时间: 2024-12-26 12:16:04

getLocationInWindow和getLocationOnScreen的区别的相关文章

我的Android进阶之旅------>android中getLocationInWindow 和 getLocationOnScreen的区别

View.getLocationInWindow(int[] location) 一个控件在其父窗口中的坐标位置 View.getLocationOnScreen(int[] location) 一个控件在其整个屏幕上的坐标位置 getLocationInWindow是以B为原点的C的坐标 getLocationOnScreen以A为原点. 下面是getLocationOnScreen示例 start = (Button) findViewById(R.id.start); int []loca

getLocationInWindow 和 getLocationOnScreen 区别

int[] location = new  int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight,  这一组是获取相对在它父窗口里的坐标.view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度.location [0]--->x坐标,location [1

我的Android进阶之旅------>android中getLocationInWindow 和 getLocationOnScreen的差别

View.getLocationInWindow(int[] location) 一个控件在其父窗体中的坐标位置 View.getLocationOnScreen(int[] location) 一个控件在其整个屏幕上的坐标位置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> getLocationI

android获得控件在屏幕中的绝对坐标 getLocationInWindow 和 getLocationOnScreen

int[] location = new  int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标location [0]--->x坐标,location [1]--->y坐标 getLocationOnScreen 得到该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内

设置popupWindow显示位置以及点击其他位置取消弹出

相对控件位置显示: 上方显示 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 private void showPopUp(View v) {         LinearLayout layout = new LinearLayout(this);         layout.setBackgroundColor(Color.GRAY);         TextView tv = new TextView(this);       

自定义的TextView,使部分内容拥有点击事件,并在点击内容上方出现对应的词义等信息

直接看效果图: 上面图中是一个TextView,注册部分内容(KeyWord)是其拥有点击事件,并通过计算KeyWord的坐标,显示KeyWord的想要的一些信息 /** * 一个TextView中包含一个可以点击的KeyWord(关键词),并通过点击关键词,在对应关键词位置正上方展示关键词对应的解释等逻辑 * @author DuGuang * */ public class MainActivity extends Activity { private KeyWordTextView mTv

控件在屏幕上的据对坐标

控件在屏幕上的绝对坐标获取方法:以屏幕左上角为坐标原点 int[] location = new int[2]; view.getLocationInWindow(location ); getLocationOnScreen的源码: public void getLocationOnScreen(int[] location) { getLocationInWindow(location); final AttachInfo info = mAttachInfo; if (info != nu

getLocationInWindow getLocationOnScreen getLeft , getTop, getBottom,getRight

版权声明:本文为博主原创文章,未经博主允许不得转载. 最近做项目时,发现在activity的onCreate()和onResume()方法里调用View.getLocationInWindow() 时,View.getLocationInWindow()返回空值,觉得很奇怪,因为以前用过,没有发现这个问题,于是调查了一下源码,这里把调查结果 做个记录. 首先,看看View.getLocationInWindow()的实现, [java] view plain copy public void g

Nginx 反代参数:$X-Real-Ip和$X-Forwarded-For的区别

## \$X-Real-Ip和$X-Forwarded-For的区别 标签(空格分隔): nignx 负载均衡 client-ip --- ####1.如果只有一层代理,这两个头的值就是一样的####2.多层代理> * X-Forwarded-For:  header包含这样一行        `*X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3*`> * X-Real-Ip:没有相关标准,上面的例子,如果配置了X-Read-IP,可能会有两种情况`// 最