Dimension der Soft-Buttons-Leiste

8

Gibt es eine Möglichkeit, die Dimension (Breite) der Menüleiste von Geräten ohne feste Menüschaltflächen zu bestimmen? (wie die Archos Geräte).

Ich muss die nutzbare Dimension des Bildschirms kennen ...

    
Direz Gunstad 31.12.2011, 16:13
quelle

3 Antworten

12

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 Leiste für weiche Schaltflächen über Ihrem Layout überlappt.

Die Methode getRealMetrics ist nur mit API 17 und + verfügbar, aber ich verwende nur die folgende Methode, die ich für Geräte auf API 19 +

geschrieben habe %Vor%

Getestet auf Nexus 5 & amp; Nexus 7 2013.

    
chteuchteu 26.12.2013 11:21
quelle
2

Eine sehr späte Antwort, aber für jeden, der auf dieses Problem stößt. Eine einfache Möglichkeit, um die Menge an nutzbarem Speicherplatz zu erhalten, der Softkeys / Navigationsleiste oder sogar die Statusleiste ausgleicht, ist getWindowVisibleDisplayFrame (Rect) von der Apps DecorView. Dadurch wird ein Rect-Objekt mit der tatsächlich nutzbaren Dimension der Anzeige geladen.

Da Sie nicht direkt einen Verweis auf das DecorView von Activiy erhalten können, müssen Sie zuerst das Activity-Fenster mit der Accessor-Methode getWindow () aufrufen. Dadurch wird das Fensterobjekt zurückgegeben, das die Aktivität und andere Bildschirmelemente enthält. Um die Dekoransicht, die die Aktivität enthält, sowie die Bildschirmdekorationen zu erhalten, d. H. Die Statusleiste, die Navigationsleiste / Soft-Schaltflächenleiste, rufen Sie die Zugriffsmethode getDecorView () auf. Sobald Sie einen Verweis auf den DecorView-Aufruf getWindowVisibleDisplayFrame (Rect) haben, haben Sie ein geladenes Rect-Objekt.

    
Wade Wilson 21.03.2016 19:02
quelle
0

Beim Starten von Andorid 3.2 ist die Höhe der Systemstatusleiste nicht in der Höhe von DisplayMetrics enthalten. Sie müssen undokumentierte APIs (Display.getRawWidth () und Display.getRawHeight ()) verwenden, um die physische Bildschirmbreite oder -höhe zu erhalten.

%Vor%

AKTUALISIERT: Für API 13-16 müssen Sie den obigen Code verwenden, um die tatsächliche Breite / Höhe zu erhalten. Für API 17+ können Sie jetzt die neue öffentliche API Display.getRealSize()

verwenden     
user363349 16.04.2013 15:19
quelle

Tags und Links