Во-первых, вам нужно создать 9-патч белого цвета.Похоже на panel_background.9.png
drawable (черный), который можно найти по пути:
<android-sdk-dir>/platforms/android-#/data/res/drawable-hdpi/panel_background.9.png
Предположим, что ваш drawable будет называться white_panel_background.9.png
.
Вариант 1.
Вы можете создать свою пользовательскую тему, которая расширяет Theme.Dialog
и переопределяет атрибут windowBackground
с помощью настраиваемого белого 9-патча для рисования.
<style name="Theme.WhiteDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/white_panel_background</item>
</style>
И затем используйте эту тему в своем диалоговом окне:
Dialog dialog = Dialog(context, R.style.Theme_WhiteDialog);
Вариант 2.
Если вы ужеСоздав диалоговое окно (с темой по умолчанию), вы все равно можете обновить его фон окна:
Dialog dialog = ...;
...
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.white_panel_background);
dialog.getWindow().setBackgroundDrawable(drawable);
Примечание : вам нужно изменить цвет текста с белого на черный (поэтому он виден на белом фоне).
Примечание : вам нужно будет сделать несколько дополнительных шагов для AlertDialog, так как он использует свои собственные стили для фона.Для получения более подробной информации см. AlertDialog
стиль .
![enter image description here](https://i.stack.imgur.com/zfq6K.png)