Ответ 1
Комментарий Aleks G (ниже вопроса) указывает в правильном направлении. Внешний вид диалога определяется отдельным стилем (android:alertDialogStyle
). Но нельзя применять стиль непосредственно к ProgressDialog
. Теперь, как мне получить желтый фон?
Шаг 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>
Здесь вы можете определить такие вещи, как цвет фона для всего окна (желтый в вопросе), цвета шрифта и т.д. Что действительно важно, это определение android:alertDialogStyle
. Этот стиль управляет появлением черной области в вопросе.
Шаг 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>
Это задает черную область в вопросе желтой.
Шаг 3: Примените MyTheme
к ProgressDialog
, не CustomAlertDialogStyle
:
ProgressDialog dialog = new ProgressDialog(this, R.style.MyTheme);
И вот результат:
Эта же процедура работает с AlertDialog
(который является родительским классом ProgressDialog
).