Ich möchte die tatsächliche Bildschirmhöhe des Geräts abrufen, auf dem meine App ausgeführt wird. Um dies zu erreichen, versuche ich Folgendes:
%Vor% Das Gerät, das ich mit dem Emulator verwende, hat eine Bildschirmbreite von 1080 Pixeln und eine Bildschirmhöhe von 1920 Pixeln. Die Breite wird korrekt angezeigt (1080 Pixel) aber die Höhe beträgt laut App nur 1776 Pixel. Was muss ich tun, damit meine App die richtige Bildschirmhöhe anzeigt? Ist metrics.heightPixels
eine schlechte Methode, um die Bildschirmhöhe zu erhalten?
Siehe diese Antwort
Wenn Ihre API-Ebene & gt; 13 versuche dies, wenn du aktiv bist
%Vor%Wenn Sie nicht in einer Aktivität sind, können Sie die Standardanzeige über WINDOW_SERVICE erhalten:
%Vor%getWidth und getHeight ist für API-Ebene 13 oder weniger
AKTUALISIEREN
Für API 17 und höher gibt Display.getRealSize()
die volle Bildschirmgröße zurück, wie bereits erwähnt in der Dokumentation :
Ruft die tatsächliche Größe der Anzeige ab ohne irgendein Fensterdekor zu subtrahieren oder irgendeine Kompatibilität anzuwenden Maßstabsfaktoren.
Die Größe wird basierend auf der aktuellen Drehung des Displays angepasst.
Die tatsächliche Größe ist möglicherweise kleiner als die physische Größe des Bildschirms Der Fenstermanager emuliert eine kleinere Anzeige (mit adb shell am Display-Größe).
Ich musste die tatsächliche verfügbare Höhe erreichen, und von all den Optionen ist das die einzige Sache, die für mich funktioniert hat.
Erstellen Sie ein Rechteck und erhalten Sie seine Abmessungen:
%Vor% Dabei ist activityRootView
die Stammansicht Ihres Layouts.
Wenn Sie die Werkzeugleistenhöhe extrahieren müssen:
%Vor% Dabei ist toolbar
Ihre Symbolleistenansicht.
availableScreenHeight
wird jetzt ohne die Statusleiste, ohne die Symbolleiste und ohne die Navigationsleiste (wenn das Gerät es verwendet).
Tags und Links java android android-studio