安卓的api竟然没有一个稳定的函数可以获取状态栏高度,也不会告知你用户按了home键或者是离开了你的应用,真不知道谷歌的工程师脑子里装的什么
不过没关系,有大牛想出来了一个不是很好看的办法,但是挺有效的
Class<?> c = null;
Object obj = null;
Field field = null;
int x = 0, sbar = 0;
try {
c = Class.forName("com.android.internal.R$dimen");
obj = c.newInstance();
field = c.getField("status_bar_height");
x = Integer.parseInt(field.get(obj).toString());
sbar = getResources().getDimensionPixelSize(x);
} catch (Exception e1) {
}
return sbar;
直接通过反射去系统资源里找状态栏高度的配置╮(╯_╰)╭
比那个getWindowVisibleDisplayFrame方法靠谱一些,不管在任何情况下都能获取到高度