获取手机屏幕分辨率1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
获取不准确原因:
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:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true"/> 这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。