2015-04-01 6 views

Antwort

26

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:

Height of status bar in Android

Dimension of soft buttons bar

+1

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

+0

@ Gern geschehen. Ich bearbeite jetzt ;-) –

+0

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

Verwandte Themen