public static int getScreenWidth(Context context) { return context.getApplicationContext().getResources().getDisplayMetrics().widthPixels; } public static int getScreenHeight(Context context) { return context.getApplicationContext().getResources().getDisplayMetrics().heightPixels; } /** * 获取状态栏高度 * @param activity * @return */ public static int getStatusHeight(Activity activity) { if (activity != null) { Rect rectangle = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rectangle); return rectangle.top; } return 0; } /** * 获取屏幕原始尺寸高度,包括虚拟功能键高度 */ public static int getScreenTotalHeight(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; } /** * 获取 虚拟按键的高度 * * @param context * @return */ public static int getNavigationBarHeight(Context context) { return getScreenTotalHeight(context) - UtilDensity.getScreenHeight(context); }
获取状态栏和虚拟键高度
最新推荐文章于 2023-12-21 18:43:42 发布