Android对话框 - 自定义背景而不是变暗或模糊

时间:2014-01-18 07:18:36

标签: android android-dialog

我已经创建了自己的自定义对话框,它工作正常,但我想将灰色背景更改为自定义图案(例如图像文件或xml形状)。我怎样才能做到这一点?
请注意,我不想改变调光强度,但我只想要,这种调光可以用模式替换

2 个答案:

答案 0 :(得分:3)

我找到了解决这个问题的方法,我从@vipul mittal回答中得出了这个问题 我应该将对话框主题设置如下:

<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>

使用此主题,我的对话框将是:

  • 全屏,因为windowIsFloating设置为false
  • 周边区域完全透明,因为windowBackground设置为@android:color/transparent

现在我应该用一个扮演周围区域角色的包装器来包装我的对话框xml布局内容,在这种情况下,我为此选择了FrameLayout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/dialog_back"> <!-- this is surrounding area drawable -->

    <!-- dialog contents goes here -->

</FrameLayout>

以下是我最终对话框的截图:
enter image description here

答案 1 :(得分:0)

将对话框主题更改为:

<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowNoTitle">true</item>
</style>

在自定义对话框中,当您拨打超级电话时:

public CustomDialog(Context context) {
    super(context, R.style.CustomDialogTheme);
}