我能够很容易地更改常规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颜色改变,所以我相信这也可以用于警告对话框吗?..