Android平板电脑上的系统栏大小

时间:2012-04-15 20:00:04

标签: android size tablet

我遇到的问题是我需要Android平板电脑系统栏的高度。这与here相同,但是我不能使用这个答案,因为它给我与DisplayMetrics相同的大小。在这两种方式中,我都可以通过此计算得到分辨率。 (这个问题不会出现在我的智能手机上,就在我的平板电脑上)。

3 个答案:

答案 0 :(得分:11)

// status bar (at the top of the screen on a Nexus device) 
public static int getStatusBarHeight(Context context) {
    Resources resources = context.getResources();
    int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        return resources.getDimensionPixelSize(resourceId);
    }
    return 0;
}

// navigation bar (at the bottom of the screen on a Nexus device)
public static int getNavigationBarHeight(Context context) {
    Resources resources = context.getResources();
    int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
    if (resourceId > 0) {
        return resources.getDimensionPixelSize(resourceId);
    }
    return 0;
}

答案 1 :(得分:0)

在此处查看此答案:https://stackoverflow.com/a/8367739/807499

它给出了屏幕的整个高度。然后,您可以减去DisplayMetrics给出的大小或根布局的大小。

答案 2 :(得分:0)

Chris Banes在最近的Droidcon谈话中提到了这一点。整个演讲非常相关,但这里有一个链接到回答你问题的部分(适用于所有外形,包括平板电脑)。

https://youtu.be/_mGDMVRO3iE?t=1093

这是获取状态栏和导航栏尺寸的正确方法:setOnApplyWindowListener

我希望这有帮助!