// Gets a display metrics object for calculating display dimensions internal static DisplayMetrics?GetDisplayMetrics(Context?context = null) { if (context is null) { context = Application.Context; } if (s_displayMetrics == null) { if (s_windowManager == null) { s_windowManager = context.GetSystemService(Context.WindowService)?.JavaCast <IWindowManager>(); } if (s_windowManager == null) { s_displayMetrics = context.Resources?.DisplayMetrics; } else { s_displayMetrics = new DisplayMetrics(); s_windowManager.DefaultDisplay?.GetMetrics(s_displayMetrics); } } return(s_displayMetrics); }
static void EnsureMetrics(Context context) { if (s_displayDensity != float.MinValue) { return; } using (DisplayMetrics? metrics = context?.Resources?.DisplayMetrics) s_displayDensity = metrics != null ? metrics.Density : 0; }
static void EnsureMetrics(Context?context) { if (s_displayDensity != float.MinValue) { return; } context ??= Android.App.Application.Context; using (DisplayMetrics? metrics = context.Resources?.DisplayMetrics) s_displayDensity = metrics != null ? metrics.Density : 1; }