2011-08-04 11 views
5

używałem ten kod, aby uzyskać pełny rozmiar ekranu w mojej aplikacjiNiewłaściwe wymiary zwracane z Display i DisplayMetrics w systemie Android 3.2?

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

Na moim tablecie, aż wersja_systemu_operacyjnego = 3,1, kod ten zwrócił W = 1280 i H = 800.

Teraz, po uaktualnieniu do systemu OS 3.2, wartości te są 1280x752 (gdy w krajobrazie)

Więc wydaje się, że coś się zmieniło od 3,1 do 3,2 dotyczące tej rozmowy: to teraz wraca dostępną przestrzeń, a nie na pełnym ekranie rozmiar.

Próbowałem już używać DisplayMetrics i widthPixels/heigthPixels, ale zwracają te same wartości. Również przy użyciu zupełnie nowego display.getSize (punkt p) zwracają te same wartości

Próbowałem również zmienić minSdkVersion i targetSdk w moim pliku manifestu na różne wartości bez powodzenia.

Jak wrócić do pełnego rozmiaru ekranu w systemie Android OS 3.2?

Moja aplikacja powinna być zgodna z Android OS> = 1,6

+2

Sam się przekonałem, że to błąd, a nie błąd. [http://groups.google.com/group/android-developers/browse_thread/thread/84dc17ef15867f1c/b2af70f1d7233cb2?lnk=gst&q=screen%20size%203.2#b2af70f1d7233cb2] To ma sens, ponieważ 3.1 tablety nie mają klucze sprzętowe, ale tylko klawisze ekranowe do nawigacji (Dom, tył, itp.) – Fabio

Odpowiedz

3

Różnica wynika z miękkich klawiszy. 3.2 weź je pod uwagę, gdy zapytasz o dostępny rozmiar ekranu, ale 3.1 nie.

Zauważysz, że jeśli przełączysz tablet do trybu poziomego, wyświetlone liczby również się zmienią.

+0

Świetnie, nienawidziłem "Muszę odjąć pasek powiadomień od wysokości" problemu. Dobrze wiedzieć! – WarrenFaith

+1

Najgorsze jest to, że dedykowane zasoby WXGA (wartości-mdpi-1280x800) nie są brane pod uwagę, ponieważ szerokość/wysokość nie pasują. – david

Powiązane problemy