【发布时间】:2014-04-24 12:43:02
【问题描述】:
我想获取活动的可显示高度。但是,我从以下 sn-p 获得的显示高度还包括状态栏高度。
int screenHeight = context.getResources().getDisplayMetrics().heightPixels;
我想要的是从状态栏底部边缘或屏幕顶部边缘到底部导航栏顶部边缘(如 Nexus 4)或屏幕底部边缘(如三星 Galaxy)的高度S4)。所以我要做的是从 sn-p 上方获取高度像素,然后减去状态栏高度
int screenHeight = ![context.getResources().getDisplayMetrics().heightPixels][1];
int statusBarHeight = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
}
int displayableHeight = screenHeight - statusBarHeight;
这个 sn-p 只能在手机和 7" 平板电脑上正常工作。但在 10" 平板电脑上(我在屏幕上的任何地方都看不到状态栏),statusBarHeight sn-p 返回 50px。这导致 displayableHeight 比用户在屏幕上看到的少 50px。
您知道为什么在 10 英寸平板电脑上报告状态栏高度 = 50 像素,因为没有显示在屏幕上,我该如何解决这个问题?
最好的
【问题讨论】:
标签: android