类说明Provides information about the size and density of a logical display.
提供合理显示的,有关大小和密度的信息。
显示区域有2种描述方式应用程序的显示区域
不包括了状态栏(刘海屏,水滴屏等),导航栏等系统UI所占用的空间
实际显示区域
包括了状态栏(刘海屏,水滴屏等),导航栏等系统UI所占用的空间
获取Display的方式
1.任意Context/**
* Get Display
* @param context Context for get WindowManager
* @return Display
*/
private static Display getDisplay(Context context) {
WindowManager wm = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE); if (wm != null) { return wm.getDefaultDisplay();
} else { return null;
}
}
2.限Activity通过Activity类型的Context,不仅可以通过Context的方式获取到WindowManager,还可以直接通过Activity的getWindowManager()获取到WindowManager对象,进而获取到Display对象。
通常我们需要获取屏幕的信息都是为了布局,如果是出于布局目的推荐直接这种方式获取Activity/**
* Get Display(限Activity类型的Context)
* @param activity Activity for get WindowManager
* @return Display
*/
private static Display getDisplay(Activity activity) { //WindowManager wm = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);
WindowManager wm = activity.getWindowManager(); if (wm != null) { return wm.getDefaultDisplay();
} else { return null;
}
}
3.结合上面2种方式(推荐)/**
* Get Display
* @param context Context for get WindowManager
* @return Display
*/
private static Display getDisplay(Context contex