如何删除对话框外的透明深色背景

时间:2014-01-31 10:16:15

标签: android android-dialog

我想删除对话框外的透明深色背景。

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);

4 个答案:

答案 0 :(得分:24)

除了chuky的回答;

如果你的minSdkVersion值大于或等于14,你可以使用setDimAmount()方法。

dialog.getWindow().setDimAmount(float amount);

根据reference;

金额新的昏暗金额,从无昏暗的0到完全昏暗的1。

As stated previously,你可以清除窗口标志。

答案 1 :(得分:15)

您的问题已经得到解答here

链接中的代码:

将它添加到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">

答案 2 :(得分:12)

希望这会对你有帮助......

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

答案 3 :(得分: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>