Ответ 1
Я решил эту проблему и создал свой собственный пользовательский всплывающий оверлей с пользовательским цветным полупрозрачным оверлейным фоном, используя следующие шаги:
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