/** * 获取状态栏高度 * @param context 上下文对象 * @return 单位px,获取失败返回-1 */ private int getStatusHeight(Context context) { try { int resourceId = this.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { return context.getResources().getDimensionPixelSize(resourceId); } } catch (Exception e) { e.printStackTrace(); } return -1; }
/** * 获得屏幕高度 * * @param context 上下文对象 * @return 屏幕高度(包括状态栏),单位px;获取失败返回-1; */ public static int getScreenHeights(Context context) { try { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { wm.getDefaultDisplay().getRealMetrics(outMetrics); } else { wm.getDefaultDisplay().getMetrics(outMetrics); } return outMetrics.heightPixels; } catch (Exception e) { e.printStackTrace(); } return -1; }
/** * 获得屏幕高度 * * @param context 上下文对象 * @return 屏幕高度(不包括状态栏),单位px;获取失败返回-1; */ public static int getScreenHeight(Context context) { try { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); return dm.heightPixels; } catch (Exception e) { e.printStackTrace(); return -1; } }
/** * 获得屏幕宽度 * @param context 上下文对象 * @return 屏幕宽度,单位px;获取失败返回-1; */ public static int getScreenWidth(Context context) { try { WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(outMetrics); return outMetrics.widthPixels; } catch (Exception e) { e.printStackTrace(); return -1; } }
/** * 设置状态栏透明沉浸式 */ public static void initSystemBarTint(Window window) { try { // 设置状态栏全透明 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } } catch (Exception e) { e.printStackTrace(); } }