我正在尝试将活动显示为具有暗淡背景的浮动窗口,并且我使用以下代码执行此操作,该操作取自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。
我错过了什么吗?我应该添加更多东西吗?请帮忙
答案 0 :(得分:1)
要尝试两件事:
params.alpha
值是一个浮点数,应该介于0.0和1.0之间,但是你传递一个int,所以alpha值设置为完全不透明或完全透明,两者之间没有任何内容。
另外,在将活动样式更改为包括:
之后,我才能在我的模拟器上运行<item name="android:windowIsTranslucent">true</item>
我不知道您在项目中是否设置了这项工作。