Monodroid屏幕尺寸

时间:2012-11-29 21:13:50

标签: xamarin.android

我正在尝试引用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。任何想法在这里发生了什么?

3 个答案:

答案 0 :(得分:4)

WindowManagerIWindowManager界面。而不是强制转换,请尝试使用.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>();