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

android平板电脑上的系统栏大小,android,size,tablet,Android,Size,Tablet,我的问题是,我需要安卓平板电脑系统栏的高度。这和上面的问题是一样的,但是我不能使用这个答案,因为它给了我和DisplayMetrics相同的大小。在这两种情况下,我都得到了这个条形图的分辨率。(这个问题不会出现在我的智能手机上,只会出现在我的平板电脑上)。在这里查看这个答案: 它给出了屏幕的全高。然后,您可以减去DisplayMetrics或根布局的大小给出的大小。Chris Banes在最近的Droidcon演讲中提到了这一点。整个演讲非常相关,但这里有一个链接,指向回答您问题的部分(所有形式

我的问题是,我需要安卓平板电脑系统栏的高度。这和上面的问题是一样的,但是我不能使用这个答案,因为它给了我和DisplayMetrics相同的大小。在这两种情况下,我都得到了这个条形图的分辨率。(这个问题不会出现在我的智能手机上,只会出现在我的平板电脑上)。

在这里查看这个答案:


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

Chris Banes在最近的Droidcon演讲中提到了这一点。整个演讲非常相关,但这里有一个链接,指向回答您问题的部分(所有形式因素,包括平板电脑)

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

这是获取状态栏和导航栏大小的正确方法:


我希望这有帮助

你的两种方法都完全相同same@Frank-不同的值作为第一个参数传递给
getIdentifier()