2

我正在尝试引用 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;

但我得到一个无效的演员表异常。

看到了这个帖子,解决不了WindowManager。有什么想法吗?

4

3 回答 3

4

WindowManagerIWindowManager接口。尝试使用.JavaCast<T>()扩展方法,而不是强制转换:

var wm = context.GetSystemService(Android.Content.Context.WindowService)
    .JavaCast<IWindowManager>();
var d  = wm.DefaultDisplay;

您还可以查看AccelerometerPlay 示例

于 2012-11-29T21:58:01.263 回答
1

另一种更简单的方法是

显示显示 = this.WindowManager.DefaultDisplay;

您可以从显示对象中获取 Width 和 Height 属性。

于 2013-06-06T11:06:32.910 回答
0
using Android.Runtime; //for JavaCast

var windowManager = Android.App.Application.Context.GetSystemService(Android.Content.Context.WindowService).JavaCast<IWindowManager>();
于 2017-04-15T20:12:42.107 回答