获取不准确原因:
1.很简单,但是有些高分辨率的手机获取的不正常,比如使用Moto Milestone手机,这款手机是480x854
分辨率的,但使用DisplayMetrics.widthPixels得的结果是320x533,并且如果按480x854切图也显示的太大,按320x533切图显示正常。原因是你没有在AndroidManifest.xml文件中设置参数
android:minSdkVersion ,android在1.6之前是不支持WVGA个FWVGA的。
在AndroidManifest.xml加上下边的代码就ok了
XML code
2.若APK安装的系统是1.6以上的,
那么你的开发环境API的等级也得是1.6以上的才能正确得到屏幕尺寸
3.这个还需要乘以一个density的,你的手机应该是乘以1.5就对了, Density是以320*480为标准的,也就是常说的mdpi,对应的density值为1.0,ldpi对应0.75,hdpi对应1.5
方法二:
Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight();
但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,具体的内容如下:
这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。 因篇幅问题不能全部显示,请点此查看更多更全内容