Это легко сделать в стиле XML, когда вы поймете, что AlertDialogs имеют несколько специальных атрибутов.
Однако было бы интересно узнать, на какую версию Android вы ссылаетесь (или на которую ориентируетесь). Theme.Dialog является относительно новым, насколько я знаю. Более новые версии Android также не используют AlertDialogs при любых обстоятельствах, когда их использовали более старые версии.
Это работает для меня в Android 2.2:
<style name="MyTheme" parent="@android:style/Theme">
<item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item>
</style>
<style name="MyOpaqueAlertDialog">
<item name="android:fullDark">@drawable/[...]</item>
<item name="android:topDark">@drawable/[...]</item>
<item name="android:centerDark">@drawable/[...]</item>
<item name="android:bottomDark">@drawable/[...]</item>
<item name="android:fullBright">@drawable/[...]</item>
<item name="android:topBright">@drawable/[...]</item>
<item name="android:centerBright">@drawable/[...]</item>
<item name="android:bottomBright">@drawable/[...]</item>
<item name="android:bottomMedium">@drawable/[...]</item>
<item name="android:centerMedium">@drawable/[...]</item>
</style>
Более новые версии Android также имеют атрибуты android: progressLayout и android: horizontalProgressLayout для стиля AlertDialog.
Кроме того, в более новых версиях Android можно ссылаться на тему AlertDialog, используя alertDialogTheme вместо alertDialogStyle в пользовательской теме. AlertDDialogThemes поддерживают более знакомые и более мощные атрибуты, такие как windowBackground, windowTitleStyle и т. Д. Взгляните на styles.xml и themes.xml.
К сожалению, документация о том, какая функция была добавлена, когда очень плохо Пожалуйста, выясните, какой подход лучше для вас.