获取屏幕宽高、DPI、状态栏高度和底部导航栏高度
2017-06-02 21:32
886 查看
1. 获取屏幕宽高
方法一,返回像素值,不包括底部导航栏高度public static int getHeightPx(Context context) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics(); display.getMetrics(displayMetrics); 获取屏幕信息,不包括底部导航栏 // displayMetrics.densityDpi; //DPI // displayMetrics.widthPixels; //宽度 return displayMetrics.heightPixels;//高度 }
方法二,返回像素值,包括底部导航栏高度
public static int getRealHeightPx(Context context) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics(); // 获取屏幕真正高度,包括底部导航栏,如华为荣耀系列的导航栏, // 要求API>=17, 不过<17也能用不会报错 display.getRealMetrics(displayMetrics); // displayMetrics.densityDpi; //DPI // displayMetrics.widthPixels; //宽度 return displayMetrics.heightPixels;//高度 }
2. 获取状态栏高度
方法一:public static int getStatusBarHeight(Context context) { int height = -1; int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { height = context.getResources().getDimensionPixelSize(resourceId); } return height; }
方法二,这个方法只有在Activity加载完成后调用有效:
// 在activity的onWindowFocusChanged(boolean hasFocus)方法中有效 public static int getStatusHeight(Activity activity) { Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int height= frame.top; return height; }
3. 获取底部导航栏高度
直接调用上面的方法相减:getRealHeightPx() - getHeightPx()
相关文章推荐
- Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
- Android 获取系统顶部状态栏高度和底部导航栏的高度
- Android笔记(九):获取屏幕高度,状态栏高度,虚拟导航栏高度
- [Android] 获取系统顶部状态栏(Status Bar)与底部导航栏(Navigation Bar)的高度
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
- Android 获取屏幕信息(状态栏、标题栏高度,屏幕宽高)
- android 获取系统顶部状态栏(Status Bar)与底部导航栏( 获取底部浮动菜单 Navigation Bar)的高度
- Android 获取屏幕宽高,状态栏,标题栏高度
- Android 获取系统顶部状态栏高度和底部导航栏的高度
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
- Android开发之如何获取屏幕、状态栏、导航栏和虚拟功能键的高度
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
- Android(13)——获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度 .
- 获取整个屏幕的高度(包含顶部状态栏和底部虚拟菜单)
- Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
- A ndroid 获取屏幕高度、标题高度、状态栏高度详解
- Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)