关于android获得设备宽高
2013-10-25 16:17
381 查看
传统的办法:
这样是可以获取到设备的宽高的,一般的手机也没测试出过问题。但是在android 的pad上就不行了。由于各厂商没有统一标准,有的pad获取到的w和h是包含标题栏高度的,有的则没包含标题栏高度,而在pad上获取标题栏高度始终是0,手机上又可以获取标题栏高度,综上,获得实际想要的屏幕能显示的最大尺寸,比较好的方法是下面的方案:
如上代码,程序可以做一个默认的启动页面,像微信或者qq一样,然后在启动页面的onLayout中,获取view的宽高给mScreenHeight和mScreenWidth赋值,这样之后的页面里再使用这个变量,就是当前设备能显示的最大尺寸了。
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赋值,这样之后的页面里再使用这个变量,就是当前设备能显示的最大尺寸了。
相关文章推荐
- 如何获得Android设备名称(ADB命令详细介绍)
- 如何获得Android设备名称(ADB命令详细介绍)
- 关于Android 获得图片的总结
- Unity3d获得android和ios设备的唯一标识
- 正确获得android设备的IP地址
- 关于Android设备USBHID通信控制传输相关接口说明
- 关于android2.2地图定位的问题,取得了设备所在经纬度,得不到具体的地址的问题
- Android 蓝牙获得连接设备的Mac地址和名称
- 关于微信web在Android设备下的javascript脚本兼容
- 不需权限获得Android设备唯一标识序列号
- Android shell java 获得安卓设备(devices)
- Android获得所有存储设备位置的最佳方法
- 关于android设备wifi-mac地址的获取
- Android 获得挂载的存储设备信息
- 关于使用android系统设备充当web服务器的一点准备
- Android获得所有存储设备位置最佳方式
- 关于Android设备中,网页端上传操作导致浏览器刷新的问题
- Android(Java): 获得设备唯一ID
- 关于android下获得的date转化为特定显示格式