相关疑难解决方法(0)

如何在Android中创建始终顶级的全屏叠加活动

我希望能够创建一个始终位于Android显示屏前面的Activity.它应该不会收到任何输入,只需将其传递给下面的任何应用程序.像HUD一样的东西.

我能够研究我需要将底层窗口类型设置为TYPE_SYSTEM_ALERT,但看起来Android忽略了我的代码 - 即使我从清单中删除了android.permission.SYSTEM_ALERT_WINDOW权限也没有异常抛出.(需要使用此窗口类型).当我尝试在对话框上使用ALERT类型时,它工作正常,但我无法将对话框设置为全屏透明实体.这是我的代码,也许有一些简单的遗漏.

public void onCreate(Bundle savedInstanceState) {       
     super.onCreate(savedInstanceState);        

     requestWindowFeature(Window.FEATURE_NO_TITLE);
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
     getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);             
     getWindow().setBackgroundDrawableResource(android.R.color.transparent);
     getWindow().setFormat(PixelFormat.TRANSLUCENT);
     setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)

必须在xml清单中外部启用半透明设置,否则它也不起作用.

 <item name="android:windowIsTranslucent">true</item>
Run Code Online (Sandbox Code Playgroud)

android window android-layout android-activity

21
推荐指数
2
解决办法
4万
查看次数