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