Sto cercando di ottenere la larghezza e l'altezza effettive dello schermo del Nexus 7 in esecuzione su 4.2.Come ottenere larghezza e altezza grezza del dispositivo o larghezza e altezza effettive dello schermo?
Sto eseguendo alcuni calcoli di runtime basati sulla larghezza e l'altezza del dispositivo per ridimensionare i pulsanti e alcuni elementi dell'interfaccia utente, quindi apparirà corretto in tutti i dispositivi. il mio codice funzionava benissimo in tutti gli SDK 4.1 e successivi ma non funzionava su 4.2.
Sto usando il seguente codice per ottenere larghezza e altezza.
Codice: 1
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
mWidth = displaymetrics.widthPixels;
mHeight = displaymetrics.heightPixels;
Codice: 2
Point size = new Point();
WindowManager w = getWindowManager();
w.getDefaultDisplay().getSize(size);
mWidth = size.x;
mHeight = size.y;
Ho provato anche con metodi non documentati
Codice: 3
Display display = getWindowManager().getDefaultDisplay();
Method mGetRawW = Display.class.getMethod("getRawWidth");
Method mGetRawH = Display.class.getMethod("getRawHeight");
mWidth = (Integer) mGetRawW.invoke(display);
mHeight = (Integer) mGetRawH.invoke(display);
Ma nessuno di cui sopra è lavorando con Nexus 7 runni ng su 4.2, sempre sottraendo l'altezza della barra di stato, non riesco a raggiungere la piena altezza.
ho utilizzato alcuni metodi per calcolare lo stato all'altezza pipistrello, ma non ottenere valori corretti,
int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);
E
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
C'è un modo standard per ottenere dispositivo reale altezza dello schermo e la larghezza?
Vedere questo codice sorgente demo vi aiuterà a raggiungere ciò che ti piace http://whats-online.info/science-and-tutorials/121/android-get-screen-width- e-altezza di programmazione / –