获取状态栏高度

其实这个方法我是今天才知道的…

之前的应用场景也不多,也没有专门的需求。用法大概就是在fitwindows的时候,拿到状态栏高度,把布局往下推这个高度就可以了。

/**
 * 获取状态栏的高度
 *
 * @param context 上下文
 * @return 状态栏高度
 */
public static int getStatusBarHeight(Context context) {
    int result = 0;
    int resourceId = context.getResources()
            .getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = context.getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

另外获取系统toolbar的高度

    /**
     * 获取ToolBar的高度
     *
     * @param context
     * @return
     */
    public static int getToolbarHeight(Context context) {
        final TypedArray styledAttributes = context.getTheme()
                .obtainStyledAttributes(new int[]{R.attr.actionBarSize});
        int toolbarHeight = (int) styledAttributes.getDimension(0, 0);
        styledAttributes.recycle();
        return toolbarHeight;
    }