Example #1
0
        // 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);
        }
Example #2
0
        static void EnsureMetrics(Context context)
        {
            if (s_displayDensity != float.MinValue)
            {
                return;
            }

            using (DisplayMetrics? metrics = context?.Resources?.DisplayMetrics)
                s_displayDensity = metrics != null ? metrics.Density : 0;
        }
Example #3
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;
        }