0

正如在这个应用程序中看到的那样,我想创建一个应用程序,通过创建一个阴影覆盖来使屏幕变暗。

窗口已创建,它是部分透明的,但是,我无法启动它下面的应用程序。我可以单击它们,然后看到按钮被按下,但是在我的运行时其他应用程序无法启动。

建议?

我在下面附上了我的代码,以及一个已经在执行此操作的应用程序示例。

final WindowManager.LayoutParams params = new WindowManager.LayoutParams( 
    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
    WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
    PixelFormat.TRANSLUCENT);   

    WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);    

    LayoutInflater inflater = (LayoutInflater)   getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    ViewGroup mTopView = (ViewGroup) inflater.inflate(R.layout.activity_black, null);
    getWindow().setAttributes(params);
    wm.addView(mTopView, params);

https://play.google.com/store/apps/details?id=com.haxor

4

2 回答 2

0

这是一个简单的方法:

Dialog dialog = new Dialog(this,android.R.style.Theme_DeviceDefault_Dialog_NoActionBar_MinWidth);
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY);

dialog.getWindow().setFormat(PixelFormat.TRANSLUCENT);
dialog.getWindow().setDimAmount(0);
dialog.setContentView(new EditText(this));
dialog.show();
于 2013-11-01T09:32:48.963 回答
-2

将Activity修改为设置,并将黑化组件移至服务,效果很好。

于 2013-01-10T12:56:42.520 回答