Android:使Dialog周围的一切都比默认更暗

时间:2011-06-29 10:03:28

标签: android background dialog transparent

我有一个具有以下风格的自定义对话框:

<style name="webtogo_app_style"  parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

它显示无边框对话框,后面的任何内容都会(略微)变暗。我的设计师希望背后的一切都比Android的默认值更暗,但不是完全黑的。

这根本没有设置吗?

我能想到的唯一解决方法是使用全屏活动而不是对话框,只需用半透明颜色填充整个屏幕(例如#99000000),然后在其上绘制对话框。有更简单的方法吗?

谢谢!

3 个答案:

答案 0 :(得分:30)

您需要做的就是使用dimAmount中的WindowManager.LayoutParams字段:

WindowManager.LayoutParams lp = myDialog.getWindow().getAttributes();
lp.dimAmount = 0.7f

答案 1 :(得分:23)

如果要创建主题半透明的自定义对话框,则还必须添加以下行。 并且您可以使用上面的答案代码控制昏暗的数量。

myDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 

对我来说,它看起来如下:

WindowManager.LayoutParams lp = myDialog.getWindow().getAttributes();
lp.dimAmount = 0.7f
myDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); 

答案 2 :(得分:0)

尝试这样做

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

其中dialog是创建的对话框的名称。