首页 > 代码库 > 老邓的android学习笔记(2)-Android 获取屏幕的分辨率的N种方式
老邓的android学习笔记(2)-Android 获取屏幕的分辨率的N种方式
Android 获取屏幕的分辨率
第一种方法:最简单的方法
1 2 | int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); |
很简单 2句话就能搞定,尽量先使用这种方法进行测试,如果这种方法无法测试通过的话,就换下面的方法
第二中方法: 获取屏幕尺寸比较通用的算法
1 2 3 4 5 6 7 8 | DisplayMetrics dm = new DisplayMetrics(); dm = getResources().getDisplayMetrics(); float density = dm.density; int densityDPI = dm.densityDpi; float xdpi = dm.xdpi; float ydpi = dm.ydpi; screenWidth = dm.widthPixels; screenHeight = dm.heightPixels; |
该方法支持大部分的手机,一般情况下在上面的方法不通过的情况可以通过改方法进行测试,没问题最好...
第三种方法:
1 2 3 4 5 6 7 8 9 10 | dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); density = dm.density; densityDPI = dm.densityDpi; xdpi = dm.xdpi; ydpi = dm.ydpi; int screenWidthDip = dm.widthPixels; int screenHeightDip = dm.heightPixels; screenWidth = ( int )(dm.widthPixels * density + 0 .5f); screenHeight = ( int )(dm.heightPixels * density + 0 .5f); |
这种方法比较适合特别的机型,比如i9000 ,通过这种方法进行够很好的进行识别的验证。他的原理是将方法一和方法二的结果乘以乘以density后( density 大于1的情况下,需要设置targetSdkVersion在4-9之间)
说明:目前android的碎片化十分的严重,很多的方法都不能通用.
原文地址:http://www.itmmd.com/201411/161.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。
老邓的android学习笔记(2)-Android 获取屏幕的分辨率的N种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。