DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
Log.d("debug","Screen inches : " + screenInches);
在Android 4.0 之前可以通過下面的方式獲取屏幕的寬高:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int mScreenW = dm.widthPixels; //得到寬度
int mScreenH = dm.heightPixels; //得到高度```
通過上面的方法在4.0之前案怯,獲得的是屏幕的總寬和總高菊碟,包括狀態(tài)欄的高度和導(dǎo)航欄的高度,例如一個(gè)480 * 800的設(shè)備蕊梧,通過上面的方法獲取的值是480和800矮锈,但在4.0后上面的方法獲取的高度就是除去導(dǎo)航欄高度外余下的高度值誓酒,例如如果導(dǎo)航欄的高度是48的話鹏浅,在4.0后通過上面的方法獲取的 mScreenH 的值是等于 480 - 48 = 432.
所以诗轻,如果想要在4.0后獲取屏幕的總高度的話钳宪,需要采用下面的方法:
Display display = getWindowManager().getDefaultDisplay();
Point point = new Point();
display.getRealSize(point);
int mScreenH = point.y;
int mScreenW = point.x;
這樣獲取的寬高才是480和800.
public String getScreen() {
int screenH = 0;
int screenW = 0;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
Display display = getWindowManager().getDefaultDisplay();
Point point = new Point();
display.getRealSize(point);
screenH = point.y;
screenW = point.x;
} else {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
screenW = dm.widthPixels; //得到寬度
screenH = dm.heightPixels; //得到高度
}
String screen =screenW+"*"+screenH;
return screen.trim();}