Усі інші відповіді тут мають сенс, але це не відповідало тому, що потрібно Фабіану. Ось моє рішення. Це може бути не ідеальним рішенням, але воно працює для мене. Він показує діалогове вікно, яке знаходиться на повноекранному екрані, але ви можете вказати прокладку вгорі, внизу, зліва або справа.
Спочатку покладіть це у свій res / values / styles.xml:
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/Black0Percent</item>
<item name="android:paddingTop">20dp</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowIsFloating">false</item>
</style>
Як ви бачите, у мене там андроїд: paddingTop = 20dp - це в основному те, що вам потрібно. Андроїд: windowBackground = @ колір / Black0Percent тільки колірний код оголошений на моєму color.xml
res / values / color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black0Percent">#00000000</color>
</resources>
Цей колірний код просто виконує функції манекена, щоб замінити стандартний фон вікна діалогового вікна кольором прозорості 0%.
Далі побудуйте власну розкладку діалогового вікна res / layout / dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialoglayout"
android:layout_width="match_parent"
android:background="@drawable/DesiredImageBackground"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/edittext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="18dp" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dummy Button"
android:textSize="18dp" />
</LinearLayout>
Нарешті, ось наш діалог, який встановлює спеціальний вигляд, який використовує наш dialog.xml:
Dialog customDialog;
LayoutInflater inflater = (LayoutInflater) getLayoutInflater();
View customView = inflater.inflate(R.layout.dialog, null);
// Build the dialog
customDialog = new Dialog(this, R.style.CustomDialog);
customDialog.setContentView(customView);
customDialog.show();
Висновок: Я спробував змінити тему діалогу у стилях.xml під назвою CustomDialog. Це переосмислює діалогове вікно діалогу і дає мені можливість встановити прокладку та змінити непрозорість фону. Це може бути не ідеальним рішенням, але я сподіваюся, що це допоможе вам .. :)