Semua jawaban lain di sini masuk akal, tetapi tidak memenuhi apa yang dibutuhkan Fabian. Ini solusi saya. Ini mungkin bukan solusi yang sempurna tetapi itu bekerja untuk saya. Ini menunjukkan dialog yang pada layar penuh tetapi Anda dapat menentukan padding di atas, bawah, kiri atau kanan.
Pertama-tama letakkan ini di res / values / styles.xml Anda:
<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>
Seperti yang Anda lihat saya punya android: paddingTop = 20dp pada dasarnya yang Anda butuhkan. The android: windowBackground = @ warna / Black0Percent hanya kode warna dideklarasikan pada color.xml saya
res / values / color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black0Percent">#00000000</color>
</resources>
Kode Warna itu hanya berfungsi sebagai boneka untuk menggantikan latar belakang jendela default Dialog dengan warna transparansi 0%.
Selanjutnya buat res / layout / dialog.xml tata letak dialog khusus
<?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>
Terakhir, inilah dialog kami yang menetapkan tampilan khusus yang menggunakan dialog.xml kami:
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();
Kesimpulan: Saya mencoba mengganti tema dialog di styles.xml bernama CustomDialog. Itu mengesampingkan tata letak jendela Dialog dan memberi saya kesempatan untuk mengatur padding dan mengubah opacity dari latar belakang. Ini mungkin bukan solusi yang sempurna tapi saya harap ini membantu Anda .. :)