Android中状态栏的高度

Android中状态栏的高度是多少? 它总是一样吗?

从我的测量结果来看,它似乎是25dp,但我不确定它是否在所有平台上具有相同的高度。

(我想知道这是为了从没有状态栏的活动中正确地实现淡入淡出转换到一个淡入淡出转换)


这个问题之前回答了...状态栏的高度?

更新 ::

当前方法:

好的,状态栏的高度取决于屏幕大小,例如,在屏幕尺寸为240 X 320的设备中,状态栏高度为20像素,对于屏幕尺寸为320 X 480的设备,状态栏高度为25像素,对于设备与480 x 800的状态栏高度必须是38px

所以我建议使用这个脚本来获得状态栏的高度

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("*** Elenasys :: ", "StatusBar Height= " + statusBarHeight + " , TitleBar Height = " + titleBarHeight); 

(旧方法)来获取Activity的onCreate()方法状态栏的高度,使用下面的方法:

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

在我用来获取状态栏高度的所有代码示例中,唯一实际看起来在ActivityonCreate方法中工作的是:

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

显然,状态栏的实际高度保持为Android资源。 上面的代码可以添加到一个ContextWrapper类(例如一个Activity )。

在http://mrtn.me/blog/2012/03/17/get-the-height-of-the-status-bar-in-android/找到


在MDPI设备上,状态栏是25px。 我们可以使用这个作为基础,并将其乘以密度(四舍五入)以获得任何设备上的状态栏高度:

int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);

供参考:ldpi = .75,mdpi = 1,hdpi = 1.5,xhdpi = 2

链接地址: http://www.djcxy.com/p/31465.html

上一篇: Height of status bar in Android

下一篇: Android webview ui