protected override void OnExecute(UIMessageContext ctx) { var request = ctx.Get <SetDeviceOrientationRequest>(); if (request == null) { return; } DisplayDimensions dims = null; var orientationSvc = InspectorContainer.Current.Resolve <IDeviceOrientation>(); var dimSvc = InspectorContainer.Current.Resolve <IDisplayDimensions>(); Thread.Invoke(() => { orientationSvc.SetOrientation(request.Orientation); dims = dimSvc.GetDimensions(); }); ctx.SetResponse <SetDeviceOrientationResponse>(r => { r.Height = dims.Height; r.Width = dims.Width; }); }
public DisplayDimensions GetDimensions() { var result = new DisplayDimensions(); var activity = (Activity)Xamarin.Forms.Forms.Context; if (activity == null) { return(null); } var size = new Point(); activity.WindowManager.DefaultDisplay.GetRealSize(size); result.Width = size.X; result.Height = size.Y; result.Density = Math.Round(activity.Resources.DisplayMetrics.Density, 2); var statusBarId = activity.Resources.GetIdentifier("status_bar_height", "dimen", "android"); if (statusBarId > 0) { result.StatusBarHeight = activity.Resources.GetDimensionPixelSize(statusBarId); } var navbarId = activity.Resources.GetIdentifier("navigation_bar_height", "dimen", "android"); if (navbarId > 0) { result.NavigationBarHeight = activity.Resources.GetDimensionPixelSize(navbarId); } return(result); }
protected override void OnExecute(UIMessageContext ctx) { var request = ctx.Get <GetDisplayDimensionsRequest>(); if (request == null) { return; } var dimensionService = InspectorContainer.Current.Resolve <IDisplayDimensions>(); var dimensions = new DisplayDimensions(); Thread.Invoke(() => { dimensions = dimensionService.GetDimensions(); }); ctx.SetResponse <GetDisplayDimensionsResponse>(r => { r.Density = dimensions.Density; r.Height = dimensions.Height; r.Width = dimensions.Width; r.NavigationBarHeight = dimensions.NavigationBarHeight; r.StatusBarHeight = dimensions.StatusBarHeight; }); }