Я решил эту проблему и создал свой собственный всплывающий оверлей с настраиваемым цветным полупрозрачным фоном наложения, выполнив следующие действия:
1 - создайте новый xml-файл в папке res / values / и назовите его styles.xml
2 - Здесь вы будете определять свойства вашего диалога. Вот как выглядит моя. Если вы хотите заменить полупрозрачное черное наложение по умолчанию, отображаемое на экране, вам нужно установить значение windowIsFloating
в false и изменить фон макета так, чтобы он соответствовал нужному цвету. Вот мой файл ниже, который я использовал:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@color/transparent_white</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
3 - Вернувшись в свой Java-код, при создании объекта диалога используйте конструктор, который передает и контекст, и тему. Например. myDialog = new Dialog(this, R.style.CustomDialogTheme);
(CustomDialogTheme - это атрибут имени, указанный в файле styles.xml на шаге 2)
4 - Просто установите вид содержимого ваших диалоговых объектов в любой макет, которым вы хотите, чтобы ваш диалог выглядел. Например. myDialog.setContentView(R.layout.my_custom_overlay);
Если вы хотите, чтобы ваше диалоговое окно отображалось в центре экрана, установите android:layout_gravity
его корневого элемента на center