跳到主要內容

透明背景的 AlertDialog

        Android dialog 預設都會有一個背景底色,要怎麼把它去掉呢?其實直接改 AlertDialog 的 style 就可以了,但我改好久…以下的範例是使用了 Support v7 AppCompat 的 theme,其他 theme 我不知道可不可以,有興趣的人可以試試看。

<style name="TransparentDialog" parent="@style/Base.Theme.AppCompat.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowTitleStyle">@null</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:alertDialogStyle">@style/TransparentDialog.Color</item>
</style>

<style name="TransparentDialog.Color" parent="@style/Base.Theme.AppCompat.Dialog">
    <item name="android:fullDark">@android:color/transparent</item>
    <item name="android:topDark">@android:color/transparent</item>
    <item name="android:centerDark">@android:color/transparent</item>
    <item name="android:topBright">@android:color/transparent</item>
</style>
參考資料:

1. Stack Overflow: Dialog with transparent background in Android

留言