Android获取虚拟导航键的高度
2017-11-20 17:35
399 查看
自从有了全面屏,就有了虚拟按键,我们该如何获取
屏幕的真实高度 以及 虚拟键的高度 呢?
之前我们使用的都是下面的方法,但有一个问题就是,在全面屏中,它获取到的高度是不包含下面导航键的高度的:
获取屏幕的真实高度
获取虚拟导航键的高度
其实,可以直接用上面的getRealHeight(Context) - getHeight(Context),下面是利用反射的方法:
屏幕的真实高度 以及 虚拟键的高度 呢?
之前我们使用的都是下面的方法,但有一个问题就是,在全面屏中,它获取到的高度是不包含下面导航键的高度的:
public static int getHeight(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = windowManager.getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); display.getMetrics(dm); int height = dm.heightPixels; return height; }
获取屏幕的真实高度
public static int getRealHeight(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = windowManager.getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { display.getRealMetrics(dm); } else { display.getMetrics(dm); } int realHeight = dm.heightPixels; return realHeight; }
获取虚拟导航键的高度
其实,可以直接用上面的getRealHeight(Context) - getHeight(Context),下面是利用反射的方法:
public static int getVirtualBarHeight(Context context) { int vh = 0; WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = windowManager.getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); try { @SuppressWarnings("rawtypes") Class c = Class.forName("android.view.Display"); @SuppressWarnings("unchecked") Method method = c.getMethod("getRealMetrics", DisplayMetrics.class); method.invoke(display, dm); vh = dm.heightPixels - display.getHeight(); } catch (Exception e) { e.printStackTrace(); } return vh; }
相关文章推荐
- Android笔记(九):获取屏幕高度,状态栏高度,虚拟导航栏高度
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
- Android开发之如何获取屏幕、状态栏、导航栏和虚拟功能键的高度
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
- Android 状态栏(StatusBar)和虚拟键(NavigationBar)的高度获取
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
- android开发判断虚拟菜单是否开启及获取虚拟菜单高度
- android获取虚拟功能键高度
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
- Android手机获取屏幕分辨率高度因虚拟导航栏带来的问题
- android 获取屏幕的高度和宽度、获取控件在屏幕中的位置、获取屏幕中控件的高度和宽度
- android通过反射获取状态栏的高度
- Android虚拟导航键的显示隐藏实例
- Android 获取屏幕宽高,状态栏,标题栏高度
- Android 获取设备屏幕的宽度和高度
- Android 获取状态栏的高度
- Android简单的获取SystemBar,StatusBar,NavigationBar的高度
- Android 获取屏幕高度和宽度
- Android 为什么获取到的控件的高度是0