ANDROID-底部虚拟导航的高度获取
现在许多手机都引入了虚拟导航,所以在android开发的时候,经常需要对底部的虚拟导航进行适配。这篇文章主要是获取底部导航的高度,以及对导航是否显示进行判断。
如何获取手机底部虚拟导航的高度
本文所使用的方法是在实际项目中使用的,可能并不适合你的要求,所以仅供参考即可。 代码如下
//获取底部导航的高度
public static int getBottomStatusHeight(Context context) {
int totalHeight = getDpi(context);
int contentHeight = getScreenHeight(context);
PrintLog.printDebug(TAG, "--显示虚拟导航了--");
return totalHeight - contentHeight;
}
//获取屏幕原始尺寸高度,包括虚拟功能键高度
public static int getDpi(Context context) {
int dpi = 0;
WindowManager windowManager = (WindowManager)
context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
@SuppressWarnings("rawtypes")
Class c;
try {
c = Class.forName("android.view.Display");
@SuppressWarnings("unchecked")
Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
method.invoke(display, displayMetrics);
dpi = displayMetrics.heightPixels;
} catch (Exception e) {
e.printStackTrace();
}
return dpi;
}
//获取屏幕高度 不包含虚拟按键=
public static int getScreenHeight(Context context) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
return dm.heightPixels;
}
复制