您的位置:首页 > 移动开发 > Android开发

关于android获得设备宽高

2013-10-25 16:17 381 查看
传统的办法:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
mDeviceWidth = dm.widthPixels;
mDeviceHeight = dm.heightPixels;


这样是可以获取到设备的宽高的,一般的手机也没测试出过问题。但是在android 的pad上就不行了。由于各厂商没有统一标准,有的pad获取到的w和h是包含标题栏高度的,有的则没包含标题栏高度,而在pad上获取标题栏高度始终是0,手机上又可以获取标题栏高度,综上,获得实际想要的屏幕能显示的最大尺寸,比较好的方法是下面的方案:

View loading = new View(this){
@Override
protected void onLayout(boolean changed, int left, int top,
int right, int bottom) {
mScreenHeight = bottom;
mScreenWidth = right;
super.onLayout(changed, left, top, right, bottom);
}
};
loading.setBackgroundResource(R.drawable.bg);

setContentView(loading);


如上代码,程序可以做一个默认的启动页面,像微信或者qq一样,然后在启动页面的onLayout中,获取view的宽高给mScreenHeight和mScreenWidth赋值,这样之后的页面里再使用这个变量,就是当前设备能显示的最大尺寸了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: