2011-08-04 44 views
5

我使用此代碼來獲得全屏幕大小在我的應用程序Android 3.2中Display和DisplayMetrics返回的尺寸錯誤?

Display display = getWindowManager().getDefaultDisplay(); 
int w = display.getWidth(); 
int h = display.getHeight(); 

在我的平板電腦,直到OSVERSION = 3.1,該代碼返回W = 1280和h = 800。

現在,升級到OS 3.2後,這些值是1280x752(橫向時)

如此看來,東西是從3.1改爲3.2關於這一呼籲:現在返回可用空間,而不是全屏尺寸。

我試過使用DisplayMetrics和widthPixels/heigthPixels但他們返回相同的值。 也使用全新的display.getSize(Point p)返回相同的值

我也試過在清單文件中將minSdkVersion和targetSdk更改爲不同的值,但沒有成功。

如何取回在Android操作系統3.2的全屏尺寸?

我的應用應與Android操作系統兼容> = 1.6

+2

我發現我自己這是一個bugfix,而不是一個錯誤。 [http://groups.google.com/group/android-developers/browse_thread/thread/84dc17ef15867f1c/b2af70f1d7233cb2?lnk=gst&q=screen%20size%203.2#b2af70f1d7233cb2] 它是有道理的,因爲3.1片沒有硬件鍵,但只有導航屏幕上的鍵(家庭,背部等..) – Fabio

回答

3

的差異是由於軟鍵。 3.2當您查詢可用屏幕尺寸時,請考慮它們,但3.1不會。

您會注意到,如果將平板電腦切換到橫向模式,則報告的數字也會發生變化。

+0

偉大的,我討厭「我需要從高度減去通知欄」的問題。很高興知道! – WarrenFaith

+1

最糟糕的是,由於寬度/高度不匹配,專用WXGA資源(值-mdpi-1280x800)不再考慮在內。 – david