屏幕像素--包含虚拟键android
华为P9,参数规格:spa
分辨率 | FHD 1920×1080 |
获取屏幕像素对象
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth =dm.widthPixels; int screenHeight =dm.heightPixels;
Debug获得的数据ci
获取到P9的像素:1812*1080get
很明显heightPixels没包含底部虚拟键的Pixelsit
获取虚拟功能键像素高方式:io
/**获取虚拟功能键高度 */ public int getVirtualBarHeigh() { 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 - windowManager.getDefaultDisplay().getHeight(); } catch (Exception e) { e.printStackTrace(); } return vh; }
至此获取全屏像素结束table
补充一点,如何覆盖虚拟功能键class
Activity设置全屏,方法有不少bug
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
而后在Activity中添加以下代买
//view_pager_imgs为Activity中任一个控件对象 view_pager_imgs.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);