如何去除对话框外部的透明黑色背景?

18

我想去掉对话框外部的透明黑色背景。

enter image description here

我尝试过:

final Dialog dialog = new Dialog(this);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.WHITE));
        this.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.WHITE));
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.spinner_layout);
         getWindow().getDecorView().setBackgroundResource(android.R.color.transparent);
5个回答

36
除了chuky的答案之外;如果你的minSdkVersion值大于或等于14,你可以使用setDimAmount()方法。
dialog.getWindow().setDimAmount(float amount);

根据参考资料; < p > amount 新的暗淡程度,从0表示不暗淡到1表示完全暗淡。

或者

如前所述,您可以清除窗口标志。


22

你的问题已经在这里得到了解答。

链接中的代码:

将以下内容添加到styles.xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.DoNotDim" parent="android:Theme">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>
然后将主题应用到您的活动中:
<activity android:name=".SampleActivity" android:theme="@style/Theme.DoNotDim">

感谢您提供的解决方案,节省了我很多时间! - hetsgandhi

19

希望这能帮到您...

dialog.getWindow().getDecorView().setBackgroundResource(android.R.color.transparent);
dialog.getWindow().setDimAmount(0.0f);
dialog.show();

0

使用dialog.getWindow().setDimAmount(float amount);会导致我的状态栏图标消失。

清除窗口中的FLAG_DIM_BEHIND标志对我有用。

dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

0

这对我没起作用

<item name="android:backgroundDimEnabled">false</item>

我使用了背景暗度量而不是背景暗度启用

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.DoNotDim" parent="android:Theme">
    <item name="android:backgroundDimAmount">0</item>
  </style>
</resources>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接