Xamarin 如何在服务中使用WindowManager?
我正在尝试将我为Android找到的一个Java示例转换为C#:Xamarin 如何在服务中使用WindowManager?,xamarin,xamarin.android,Xamarin,Xamarin.android,我正在尝试将我为Android找到的一个Java示例转换为C#: [服务] 公共类示例服务:服务 { 公共覆盖iBind OnBind(意图) { 返回null; } public override void OnCreate() { base.OnCreate(); //创建windowManager对象-相对容易 var windowManager=GetSystemService(Context.WindowService).JavaCast(); //基于WindowManager la
[服务]
公共类示例服务:服务
{
公共覆盖iBind OnBind(意图)
{
返回null;
}
public override void OnCreate()
{
base.OnCreate();
//创建windowManager对象-相对容易
var windowManager=GetSystemService(Context.WindowService).JavaCast();
//基于WindowManager layoutParams类创建layoutParams
//(即服务上下文中不存在的类的静态成员?!?!
var layoutParams=新建WindowManager.layoutParams(1,1,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG\u WATCH\u Out\u TOUCH,
像素格式。半透明
);
}
}
问题在于,在C#worldWindowManager
中,服务似乎不可用,而在Java中则可用(至少根据我看到的示例)
在C#中,IWindowManager
可用,但不包含静态成员
有什么方法可以做到这一点吗?似乎我可以使用类而不是
WindowManager
WindowManagerLayoutParams
因此,代码:
LayoutParams layoutParams = new WindowManager.LayoutParams(1, 1,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT
);
变成
var layoutParams = new WindowManagerLayoutParams(1, 1,
WindowManagerTypes.SystemOverlay,
WindowManagerFlags.WatchOutsideTouch,
Format.Translucent);
似乎我可以使用类来代替
WindowManager
WindowManagerLayoutParams
因此,代码:
LayoutParams layoutParams = new WindowManager.LayoutParams(1, 1,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT
);
变成
var layoutParams = new WindowManagerLayoutParams(1, 1,
WindowManagerTypes.SystemOverlay,
WindowManagerFlags.WatchOutsideTouch,
Format.Translucent);
似乎我可以使用类来代替
WindowManager
WindowManagerLayoutParams
因此,代码:
LayoutParams layoutParams = new WindowManager.LayoutParams(1, 1,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT
);
变成
var layoutParams = new WindowManagerLayoutParams(1, 1,
WindowManagerTypes.SystemOverlay,
WindowManagerFlags.WatchOutsideTouch,
Format.Translucent);
似乎我可以使用类来代替
WindowManager
WindowManagerLayoutParams
因此,代码:
LayoutParams layoutParams = new WindowManager.LayoutParams(1, 1,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT
);
变成
var layoutParams = new WindowManagerLayoutParams(1, 1,
WindowManagerTypes.SystemOverlay,
WindowManagerFlags.WatchOutsideTouch,
Format.Translucent);
看起来,我尝试了一些非常类似的东西。你让它工作了吗?你能显示完整的转换样本吗?我的问题是,我在尝试添加视图时遇到了NotSupportedException。看起来,我尝试了一些非常类似的东西。你让它工作了吗?你能显示完整的转换样本吗?我的问题是我遇到了一个NotSupportedException尝试添加视图时遇到了SupportedException。我似乎尝试了一些非常类似的方法。您让它工作了吗?您可以显示完整的转换示例吗?我的问题是,我在尝试添加视图时遇到了NotSupportedException。我似乎尝试了一些非常类似的方法。您让它工作了吗?您可以显示完整的转换示例吗ted示例?我的问题是在尝试添加视图时遇到NotSupportedException。