Buradaki diğer cevapların hepsi mantıklı, ancak Fabian'ın ihtiyaç duyduğu şeyleri karşılamadı. İşte benim bir çözümüm. Mükemmel bir çözüm olmayabilir ama benim için çalışıyor. Tam ekranda bir iletişim kutusu görüntüler, ancak üstte, altta, solda veya sağda bir dolgu belirleyebilirsiniz.
Öncelikle bunu res / değerleri / styles.xml dosyasına koyun:
<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>
Gördüğünüz gibi orada android var: paddingTop = 20dp temelde ihtiyacınız olan şey. Android: windowBackground = @ renkli / Black0Percent sadece renk kodu benim color.xml deklare olduğu
res / değerler / color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black0Percent">#00000000</color>
</resources>
Bu Renk kodu, İletişim Kutusunun varsayılan pencere arka planını% 0 şeffaflık rengiyle değiştirmek için bir kukla görevi görür.
Ardından özel iletişim düzeni düzenini res / layout / dialog.xml oluşturun
<?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>
Son olarak, dialog.xml dosyamızı kullanan özel görünümü ayarlayan iletişim kutumuz:
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();
Sonuç: CustomDialog adlı styles.xml dosyasında iletişim kutusunun temasını geçersiz kılmaya çalıştım. İletişim penceresi düzenini geçersiz kılar ve bana bir dolgu oluşturma ve arka planın opaklığını değiştirme şansı verir. Mükemmel bir çözüm olmayabilir ama umarım size yardımcı olur .. :)