我创建了一个透明活动 A。在此,我使用表面视图来播放视频。我可以触摸这个活动A背后的应用程序和活动。但是当我点击另一个应用程序时,活动A会进入后台并以不正确的方式关闭。如果您单击其他应用程序,我想让活动 A 始终保持在屏幕顶部。我尝试了许多标志,但没有一个工作正常。如果想知道如何使活动窗口始终保持在顶部?
请分享您的建议和想法。任何帮助将不胜感激。
我创建了一个透明活动 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
。