C'è un modo in Android per ottenere le dimensioni della barra dei pulsanti software e della barra di stato insieme? o un modo per ottenere l'altezza dello schermo senza l'altezza di entrambe queste barre? (Non sono sempre gli stessi, guardare il Nexus 7, per esempio)Come ottenere l'altezza della barra di stato e della barra dei tasti funzione?
risposta
altezza della barra di stato
L'altezza della barra di stato dipende dalla dimensione dello schermo, ad esempio in un dispositivo con 240 x 320 dimensioni schermo l'altezza della barra di stato è 20px per un dispositivo con 320 x 480 dimensioni schermo l'altezza della barra di stato è 25px per un dispositivo con 480 x 800 status altezza della barra deve essere 38px
quindi vi consiglio di utilizzare questo script per ottenere l'altezza barra di stato
Rect rectangle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int statusBarHeight = rectangle.top;
int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int titleBarHeight= contentViewTop - statusBarHeight;
Log.i("*** Value :: ", "StatusBar Height= " + statusBarHeight + " , TitleBar Height = " + titleBarHeight);
per ottenere l'altezza della barra di stato sul metodo della vostra attività onCreate()
, utilizzare questo metodo:
public int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
Tasti soft Key bar
Questo metodo è molto utile per impostare il layout padding in Android KitKat (4.4). Usando questo, puoi evitare che la barra dei pulsanti morbidi si sovrapponga al tuo layout.
Procedimento getRealMetrics
è disponibile solo con API 17 e +
@SuppressLint("NewApi")
private int getSoftButtonsBarHeight() {
// getRealMetrics is only available with API 17 and +
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
Riferimento:
- 1. Dimensione della barra dei pulsanti funzione
- 2. Icona della barra di stato di Android
- 3. Android: barra di stato della barra degli strumenti sovrapposta
- 4. Come ottenere il pulsante della barra delle applicazioni di Windows dell'applicazione per mostrare lo stato di avanzamento della barra
- 5. iOS MapView va sotto la barra di navigazione, la barra di stato e il controller della barra delle linguette
- 6. Come allineare verticalmente il testo della mia barra di stato?
- 7. Icone della barra degli strumenti iPad: immagini dei pulsanti della barra non centrate?
- 8. OSX: come "mostrare" un elemento della barra di stato?
- 9. che controlla l'icona della barra di stato di Android
- 10. Leggi il testo della barra di stato dell'applicazione excel
- 11. Cambio della barra di stato senza alcuna notifica
- 12. Disegna il valore della barra nella barra
- 13. come mostrare la barra di stato nella finestra della barra multifunzione wpf C#
- 14. Barra di caricamento sulla barra di stato?
- 15. Dimensioni dell'icona della barra di stato di NSStatusBar OSX?
- 16. Come posso rimuovere le icone della barra del titolo e della barra delle applicazioni dei programmi Java su Windows 7?
- 17. Come ottenere la posizione della barra di scorrimento con Javascript?
- 18. Personalizzazione dei colori della barra delle schede di Vim
- 19. Rilevare se l'utente ha nella barra di stato della chiamata
- 20. Cambiare gradualmente il colore della barra di stato
- 21. sfondo della finestra è ritagliato dalla barra di stato
- 22. Inverti il colore dell'icona della barra di stato
- 23. Rimozione della barra di stato nella mia app
- 24. Barra di avanzamento della timeline per AVPlayer
- 25. Problema della barra di stato del layout barra degli strumenti di compressione
- 26. Approfittando della barra di stato traslucida in Android 4.4 KitKat
- 27. winforms - tooltip delle etichette della barra di stato non visualizzate
- 28. mostra il caricamento della cpu nella barra di stato emacs23
- 29. iPhone Safari screen.availAltezza e barra di stato/barra degli strumenti/barra degli indirizzi
- 30. Come interrompere l'animazione della barra di avanzamento?
Wow grazie mille A questa risposta. Pensavo che il secondo metodo non avrebbe funzionato nel caso in cui avessi contemporaneamente una barra di stato e di softbutton, suppongo di aver sbagliato, l'ho già testato e funziona. : D Ancora meglio, funziona anche con API 16! – Joske369
@ sei il benvenuto. Ora modifica ;-) –
C'è solo un problema quando la barra di stato è la barra dei soft button, il primo metodo restituisce 25 pixel e il metodo dei soft button restituisce 48 pixel (sony xperia tablet s) – Joske369