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人 整理发布,转载须标明出处。