300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 获取手机屏幕宽度 高度 状态栏高度 设置状态栏沉浸式

获取手机屏幕宽度 高度 状态栏高度 设置状态栏沉浸式

时间:2021-08-27 20:02:42

相关推荐

获取手机屏幕宽度 高度 状态栏高度 设置状态栏沉浸式

/*** 获取状态栏高度* @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();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。