您的位置:首页 > 其它

在onWindowFocusChanged方法中获取手机屏幕的高宽

2016-04-05 09:05 344 查看
开发时,我们时常要获取手机屏幕的高宽数据。通常我们会写个获取方法如getScreen();然后在
Oncreate()中调用getScreen()方法
。我们可能获取到的结果是宽高为0。这是为什么呢?原因在于:

在Activity生命周期中,
onCreate,onStart, onResume
都不是真正屏幕可见(VISIBLE)时间点,真正的VISIBLE时间点是在当
onWindowFocusChanged()
函数被执行时,此时用户才真正地可以与应用进行交互,而这函数被调用之前,用户的操作都有一点限制。所以我们要正确获取到手机屏幕的宽高,是要在
onWindowFocusChanged()
方法中来执行。

@Override
public void onWindowFocusChanged(boolean hasFocus)
{
int width=getResources().getDisplayMetrics().widthPixels;//屏幕宽度
int hight=getResources().getDisplayMetrics().heightPixels;//屏幕高度
super.onWindowFocusChanged(hasFocus);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: