2015-04-01 13 views

cevap

26

Yükseklik (bunlar örneğin nexus 7 bakmak, her zaman aynı değildir)

durum çubuğunun yüksekliği bir cihazda örneğin, ekran boyutuna bağlıdır 240 x 320 ekran boyutu ile durum çubuğu yüksekliği durum çubuğu yüksekliği 480 x 800 durum çubuğu yüksekliği olan bir cihaz için, 25 piksel olan 320 x 480 elek büyüklüğüne sahip bir cihaz için, 20 piksel olduğu

: 38px

olmalıdır yüzden senin Faaliyet onCreate() yöntemine durum çubuğunun Yükseklik almak için durum çubuğu İç yükseklik

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); 

almak için bu komut dosyasını kullanmak için tavsiye bu yöntemi kullanmak

public int getStatusBarHeight() { 
     int result = 0; 
     int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
     if (resourceId > 0) { 
      result = getResources().getDimensionPixelSize(resourceId); 
     } 
     return result; 
} 

Yumuşak Anahtar Düğmeler

Bar Bu yöntem Android KitKat (4.4) 'de düzen dolgularını ayarlamak için çok kullanışlıdır. Bunu kullanarak, mizanpajınızın üzerinde yer alan yumuşak düğme çubuğundan kaçınabilirsiniz.

getRealMetrics yöntem API 17 ile kullanılabilir ve +

@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; 
} 

Referans:

Height of status bar in Android

Dimension of soft buttons bar

+1

Vay sayesinde çok bu cevap için. Aynı anda hem durum hem de yazılım çubuğuna sahip olmanız durumunda ikinci yöntemin işe yaramayacağını düşündüm, sanırım yanılmışım, bunu zaten test ettim ve işe yarıyor. : D Daha da iyisi, işe yarıyor ve API 16 da! – Joske369

+0

@ rica ederim. Şimdi düzenleyin ;-) –

+0

Durum çubuğu yumuşak düğme çubuğu olduğunda, ilk yöntem 25 piksel döndürdüğünde ve softbuttons yöntemi 48 piksel (sony xperia tableti) – Joske369

İlgili konular