DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenWidth = metrics.widthPixels;
screenHeight = metrics.heightPixels;
我使用這些代碼來獲得高度和屏幕的寬度如何獲得真正的屏幕高度和寬度?
我Nexus7屏幕高度應該是1280
但它返回1205 ...
和我的minSdkVersion是水平8
,所以我不能使用這些方法:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screen_width = size.x;
int screen_height = size.y;
現在,我應該如何獲得正確的屏幕尺寸?
編輯:
if (Build.VERSION.SDK_INT >= 11) {
Point size = new Point();
try {
this.getWindowManager().getDefaultDisplay().getRealSize(size);
screenWidth = size.x;
screenHeight = size.y;
} catch (NoSuchMethodError e) {
Log.i("error", "it can't work");
}
} else {
DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenWidth = metrics.widthPixels;
screenHeight = metrics.heightPixels;
}
使用它的工程!
這有幫助嗎? http://stackoverflow.com/questions/1016896/android-how-to-get-screen-dimensions – trojanfoe
不,我不能使用'display.getSize(size);'因爲我的min SDK是level 8 – user1531240
那麼if你閱讀trojanfoe的鏈接中的一些評論,他們建議像這樣:try {display.getSize(size); width = size.x; height = size.y; } catch(NoSuchMethodError e){width = display.getWidth(); height = display.getHeight(); } ....但是,即使你可以使用getSize()方法,我認爲你仍然會得到這個可用屏幕高度的1205分辨率(即減去導航按鈕)。不知道如何獲得導航按鈕的高度,但有興趣和期待。 – ggenglish