Gibt es einen Weg in Android, um die Größe der Soft-Buttons und Statusleiste zusammen zu bekommen? oder eine Möglichkeit, die Höhe des Bildschirms ohne die Höhe dieser beiden Bars zu bekommen? (Sie sind nicht immer gleich, Blick auf der Nexus 7 zum Beispiel)Wie wird die Höhe der Statusleiste und der Softkey-Tastenleiste angezeigt?
Antwort
Höhe der Statusleiste
Die Höhe der Statusleiste ist abhängig von der Bildschirmgröße, zum Beispiel in einem Gerät mit 240 x 320 Bildschirmgröße ist, die Statusleiste Höhe 20px, für ein Gerät mit 320 x 480 Siebgröße 25px, die Statusleiste Höhe für ein Gerät ist mit 480 x 800 der Statusleiste Höhe sein muss 38px
so der Statusleiste Höhe Ich empfehle dieses Skript zu verwenden
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);
, um die Höhe der Statusleiste auf der onCreate()
Methode Ihrer Aktivität zu erhalten, verwenden Sie diese Methode zu erhalten:
public int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
Soft-Key-Tasten Bar
Diese Methode ist sehr nützlich, um den Layout-Abstand in Android KitKat (4.4) festzulegen. Auf diese Weise können Sie vermeiden, dass sich die Soft-Tastenleiste über Ihrem Layout überlappt.
Die getRealMetrics
Methode ist nur mit API 17 und +
@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;
}
Referenz:
- 1. Höhe der Statusleiste abrufen, bevor sie angezeigt wird?
- 2. Höhe der Statusleiste in Swift
- 3. Die Symbolleiste wird nicht unter der transparenten Statusleiste angezeigt
- 4. Android Appbarlayout Höhe erscheint in der Statusleiste
- 5. Warum wird in der Statusleiste des Safari-Browsers false angezeigt?
- 6. Wie wird ein Symbol in der Statusleiste angezeigt, wenn die Anwendung ausgeführt wird, auch im Hintergrund?
- 7. Wie wird die Höhe der Symbolleiste festgelegt?
- 8. WinForms - Tooltip der Statusleiste Etiketten nicht angezeigt
- 9. Wie wird man benachrichtigt, wenn sich die Höhe der Statusleiste ändert?
- 10. Der Inhalt wird unterhalb der Schaltfläche angezeigt, wenn die Höhe angepasst wird
- 11. Zuverlässige Höhe der Statusleiste zu lösen KitKat transluzente Navigation Problem
- 12. Wie wird die Höhe der Tabelle so festgelegt, dass eine vertikale Bildlaufleiste angezeigt wird?
- 13. Wie wird die Netzwerkanzeige in der iOS-Statusleiste aktiviert?
- 14. Wie wird eine grüne Statusleiste mit doppelter Höhe (In-Call) in der App im Vordergrund auf dem Gerät angezeigt?
- 15. Hide Status Bar und erhöhen Sie die Höhe der UINavigationBar
- 16. Die schwarze Statusleiste wird beim Beenden der iPhone App weiß.
- 17. Wie wird der Fortschritt der Dateientpackung angezeigt?
- 18. Wie wird der Karteninhalt angezeigt?
- 19. Navigationsschublade unterhalb der Statusleiste
- 20. C# Wie comboBox-Wert angezeigt wird und stattdessen der Name der Objekte angezeigt wird
- 21. Wie wird die Höhe der Android-Symbolleiste festgelegt?
- 22. Wie wird die div-Höhe eines Elternteils automatisch erhöht, abhängig von der maximalen Höhe der Kinder?
- 23. Wie wird die Höhe der Legende so festgelegt, dass sie der Höhe des Diagrammbereichs entspricht?
- 24. Capture/Read Nachricht in der Excel-Anwendung Statusleiste angezeigt
- 25. Symbolleiste scrollen unter der Statusleiste
- 26. Bei der Berechnung der geodätischen Distanz wird die Höhe berücksichtigt
- 27. Die Tabelle der TextBoxen wird nicht angezeigt.
- 28. Die Anzahl der Wörterbücher wird nicht angezeigt
- 29. Ausblenden der Statusleiste in UWP
- 30. Wie wird die Höhe von Containern in der Stapelansicht festgelegt?
Wow vielen Dank für diese Antwort. Ich dachte, die zweite Methode würde nicht funktionieren, wenn Sie gleichzeitig einen Status und eine Softbutton-Leiste haben. Ich schätze, ich habe mich geirrt. Ich habe das bereits getestet und es funktioniert. : D Noch besser, es funktioniert und API 16 auch! – Joske369
@ Gern geschehen. Ich bearbeite jetzt ;-) –
Es gibt nur ein Problem, wenn die Statusleiste die Soft-Button-Leiste ist, die erste Methode gibt 25 Pixel zurück und die Softbuttons-Methode gibt 48 Pixel zurück (Sony Xperia Tablet) – Joske369