文章目录
  1. 1. 获取屏幕原始高度

android带有虚拟键的手机, 获取屏幕宽度默认不包含虚拟键的高度,以下代码是获取屏幕原始高度。

获取屏幕原始高度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static int getDpi(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;
}

华为等带有虚拟键的手机,如下代码获取的屏幕高度不包含虚拟键盘的高度

1
2
3
4
5
public static int getScreenHeight(Activity activity) {
DisplayMetrics metric = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metric);
return metric.heightPixels;
}
文章目录
  1. 1. 获取屏幕原始高度