更改AlertDialog的背景颜色

时间:2013-01-24 15:09:11

标签: android alertdialog android-ui android-alertdialog

我能够很容易地更改常规Dialog的背景,现在我想将我的特定背景颜色分配给AlertDialog。我从android-17 / styles.xml中提取了必要的部分(我不能简单地引用的部分是子类)并成功修改了按钮框bg颜色:

<!--    Extracted from styles.xml for Holo theme   -->

    <style name="AlertButtonBarWithBackground" parent="@android:style/Holo.ButtonBar.AlertDialog">
        <item name="android:background">@color/dialog_background_color</item>        
    </style>

    <style name="AndroidHoloTextAppearance">
        <item name="android:textColor">?android:attr/textColorPrimary</item>
        <item name="android:textColorHighlight">?android:attr/textColorHighlight</item>
        <item name="android:textColorHint">?android:attr/textColorHint</item>
        <item name="android:textColorLink">?android:attr/textColorLink</item>
        <item name="android:textSize">18sp</item>
        <item name="android:textStyle">normal</item>
    </style>

    <style name="AndroidDialogWindowTitle">
        <item name="android:maxLines">1</item>
        <item name="android:scrollHorizontally">true</item>
        <item name="android:textAppearance">@android:style/TextAppearance.DialogWindowTitle</item>
    </style>

    <style name="AndroidDialogWindowTitle.Holo">
        <item name="android:maxLines">1</item>
        <item name="android:scrollHorizontally">true</item>
        <item name="android:textAppearance">@style/AndroidHoloTextAppearance</item>
    </style>

    <style name="AlertDialogTheme" parent="@android:style/Theme.Holo.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowTitleStyle">@style/AndroidDialogWindowTitle.Holo</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
        <item name="android:buttonBarStyle">@style/AlertButtonBarWithBackground</item>
    </style>

<!--    End of extracted fragment  -->

    <style name="ActivityTheme" parent="android:Theme.Holo">
        <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
    </style>

但无论我如何尝试改变文本区域背景,对话框周边的阴影背景也会发生变化。对于常规Dialog,情况并非如此,我为此设置了bg颜色,如下所示:

    @色/ dialog_background_color

它仍然具有漂亮的标准阴影,不会被bg颜色改变,所以我相信这也可以用于警告对话框吗?..

0 个答案:

没有答案