Aleks G(问题下方)的评论指出了正确的方向。对话框的外观由单独的样式定义(android:alertDialogStyle
)。但人们不能将这种风格直接应用到ProgressDialog
。现在,我如何获得黄色背景?
Step 1: 定义一个主题,继承自Theme.Dialog
:
<style name="MyTheme" parent="@android:style/Theme.Dialog">
<item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
<item name="android:textColorPrimary">#000000</item>
</style>
在那里,您可以定义诸如背景颜色之类的内容whole窗口(问题中的黄色),字体颜色等。真正重要的是定义android:alertDialogStyle
。此样式控制问题中黑色区域的外观。
Step 2:定义CustomAlertDialogStyle
:
<style name="CustomAlertDialogStyle">
<item name="android:bottomBright">@color/yellow</item>
<item name="android:bottomDark">@color/yellow</item>
<item name="android:bottomMedium">@color/yellow</item>
<item name="android:centerBright">@color/yellow</item>
<item name="android:centerDark">@color/yellow</item>
<item name="android:centerMedium">@color/yellow</item>
<item name="android:fullBright">@color/yellow</item>
<item name="android:fullDark">@color/yellow</item>
<item name="android:topBright">@color/yellow</item>
<item name="android:topDark">@color/yellow</item>
</style>
这会将问题中的黑色区域设置为黄色。
Step 3: Apply MyTheme
to the ProgressDialog
, not CustomAlertDialogStyle
:
ProgressDialog dialog = new ProgressDialog(this, R.style.MyTheme);
结果如下:
相同的程序适用于AlertDialog
(这是的父类ProgressDialog
).