当我尝试浏览Android.Content.Context类中的类时,它没有显示任何SystemService,我需要获取当前屏幕的宽度和高度。
IWindowManager windowManager = Context.
(Context.WindowService).JavaCast<IWindowManager>();
windowManager.DefaultDisplay.GetMetrics(metrics);
Console.WriteLine("Test: " + metrics.HeightPixels +
metrics.WidthPixels);
上下文为我提供了许多不同的服务,但是没有SystemService,没有这个,我将无法获得进一步的服务。
编辑1:
IWindowManager windowManager = CarouselPage.GetSystemService();
这不起作用,我的上下文不知道systemservice或windowservice
答案 0 :(得分:-1)
我的上下文不知道systemservice还是windowservice
您拥有的上下文与您拥有的View
相关联,因此它具有一个上下文,该上下文将成为托管活动。
因此将上下文转换为活动:
var metrics = new DisplayMetrics();
(someView.Context as Activity)?.WindowManager.DefaultDisplay.GetMetrics(metrics);
系统服务示例:
var usbService = (someView.Context as Activity).GetSystemService(UsbService) as UsbManager;
另外,您正在编写此类代码的包含实例将是一个Activity,因此您可以使用 this
作为对象引用(this.WindowManager.~~~
)