繁体   English   中英

如何在Android中使透明活动窗口始终位于顶部?

[英]How to make transparent activity window always on top in android?

我创建了一个透明的活动A。在这种情况下,我正在使用表面视图播放视频。 我可以触摸活动A后面的应用和活动。但是,当我单击另一个应用时,活动A进入后台并以不适当的方式关闭。 如果您单击其他应用程序,我想使活动A始终停留在屏幕顶部。 我尝试了很多标志,但没有人能正常工作。 如果想知道如何使活动窗口始终位于最前面?

请分享您的建议和想法。 任何帮助将不胜感激。

您可以使用WindowManager.addView()将自定义的视图添加到窗口,还可以为视图设置WindowManager.LayoutParams属性。

这是一个示例:

private WindowManager wm=null;
private WindowManager.LayoutParams wmParams=null;

private MyCustomView myView=null;

private void createView(){
    myView = new MyCustomView(getApplicationContext());
    wm = (WindowManager)getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
    wmParams = new WindowManager.LayoutParams();

    /**
     * Window type: phone.  These are non-application windows providing
     * user interaction with the phone (in particular incoming calls).
     * These windows are normally placed above all applications, but behind
     * the status bar.
     */
    wmParams.type=LayoutParams.TYPE_PHONE;
    wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE;
    wmParams.gravity=Gravity.LEFT|Gravity.TOP; 
    wmParams.x=0;
    wmParams.y=0;
    wmParams.width=40;
    wmParams.height=40;
    wm.addView(myView, wmParams);
}

不要忘记在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

然后,您可以在MyCustomView中对所有应用程序执行任何所需的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM