在onWindowFocusChanged方法中获取手机屏幕的高宽
2016-04-05 09:05
344 查看
开发时,我们时常要获取手机屏幕的高宽数据。通常我们会写个获取方法如getScreen();然后在
在Activity生命周期中,
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); }
相关文章推荐
- C++继承权限和继承方式
- 安卓视频开发探索总结:轮子不给力,坑深....
- 实际运用类的封装、赋值
- 对象关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- 通过反编译看Java String及intern内幕--费元星站长
- XDA-University: Getting Started
- JPEG与GIF区别(在web中应用时)
- 【flask】Unable to acquire Oracle environment handle 报错
- java环境变量设置
- GitHub控件之BadgeView(数字提醒)
- 决策树学习
- Permission denied: win7下面eclipse上传本地文件到DFS && 运行M/R程序时出现的同样的错误解决方法
- 每天laravel-20160629|RedisTaggedCache
- spring mvc + mybatis 整合框架
- 理解ASP.NET MVC的DependencyResolver组件
- 【z13区】nodejs原生态模块,写个聊天室
- raft 一致性算法
- Apache无法启动,终极解决方法,适用于“应用程序无法正常启动 0xc000007b”错误
- 每天laravel-20160629|RedisTaggedCache
- 【poj 3667】Hotel 题意&&题解&&代码(C++)