我试图将活动显示为具有暗背景的浮动窗口,并且我使用以下代码来执行此操作,该代码取自 Google I/O 2016 项目:
protected void setupFloatingWindow(int width, int height, int alpha, float dim) {
WindowManager.LayoutParams params = getWindow().getAttributes();
params.width = getResources().getDimensionPixelSize(width);
params.height = getResources().getDimensionPixelSize(height);
params.alpha = alpha;
params.dimAmount = dim;
params.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND;
getWindow().setAttributes(params);
}
我在 onCreate 中调用此函数,在 super.onCreate 和 setContentView 之前,就像在 Google I/O 示例代码中一样。
这种方式对我来说不起作用。该活动显示为一个浮动窗口,其大小是我设置的,但后面的背景是黑色的,并且没有像我预期的那样变暗。我设置的dimAmount 是0.4f。
我错过了什么吗?我应该添加更多东西吗?请帮忙
有两件事要尝试:
The params.alpha
value 是一个浮点数,应该介于 0.0 和 1.0 之间,但您传递的是 int,因此 alpha 值被设置为完全不透明或完全透明,中间没有任何值。
另外,只有在将活动样式更改为包括以下内容后,我才能在模拟器上使用此功能:
<item name="android:windowIsTranslucent">true</item>
我不知道您正在工作的项目中是否设置了这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)