activity 的昏暗背景

Dim background of an activity

我正在尝试将 activity 显示为具有暗淡背景的浮动 window,我正在使用以下代码来执行此操作,该代码取自 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 示例代码中一样。

这种方式对我不起作用。 activity 显示为浮动 window,具有我设置的大小,但后面的背景是黑色的,并没有像我预期的那样变暗。我设置的 dimAmount 是 0.4f.

我错过了什么吗?我应该添加更多内容吗?请帮助

尝试两件事:

params.alpha 值是一个浮点数,应该介于 0.0 和 1.0 之间,但您传递的是一个整数,因此 alpha 值被设置为完全不透明或完全透明,没有介于两者之间的值。

此外,在将 activity 样式更改为包括以下内容后,我只能在我的模拟器上运行它:

<item name="android:windowIsTranslucent">true</item>

我不知道你正在工作的项目中是否设置了这个。