我正在尝试引用WindowManger,因此我可以获得默认屏幕的尺寸,但我似乎无法找到它的参考。 (这是API 8,froyo 2.2)。我甚至尝试过:
dynamic wm = Android.App.Application.Context.GetSystemService(Android.Content.Context.WindowService);
Display display = wm.getDefaultDisplay();
但收到错误消息表明Object
没有回复getDefaultDisplay
。
我也试过了:
var wm = (IWindowManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.WindowService);
Display display = wm.DefaultDisplay;
但是我得到了一个无效的强制转换异常。
看到this post,但我无法解决WindowManager
。任何想法在这里发生了什么?
答案 0 :(得分:4)
WindowManager
是IWindowManager界面。而不是强制转换,请尝试使用.JavaCast<T>()扩展方法:
var wm = context.GetSystemService(Android.Content.Context.WindowService)
.JavaCast<IWindowManager>();
var d = wm.DefaultDisplay;
您还可以查看AccelerometerPlay sample。
答案 1 :(得分:0)
另一种更简单的方法是
显示display = this.WindowManager.DefaultDisplay;
您可以从显示对象中获取“宽度”和“高度”属性。
答案 2 :(得分:0)
using Android.Runtime; //for JavaCast
var windowManager = Android.App.Application.Context.GetSystemService(Android.Content.Context.WindowService).JavaCast<IWindowManager>();