यहां अन्य सभी उत्तर समझ में आते हैं, लेकिन यह नहीं मिला कि फेबियन को क्या चाहिए। यहाँ मेरा एक समाधान है। यह सही समाधान नहीं हो सकता है लेकिन यह मेरे लिए काम करता है। यह एक डायलॉग दिखाता है जो फुलस्क्रीन पर है लेकिन आप ऊपर, नीचे, बाएं या दाएं पर एक पैडिंग निर्दिष्ट कर सकते हैं।
पहले इसे अपने रेस / मान / स्टाइल में रखें। 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>
जैसा कि आप देख सकते हैं कि मेरे पास Android है: 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% पारदर्शिता रंग के साथ डायलॉग की डिफ़ॉल्ट विंडो पृष्ठभूमि को बदलने के लिए एक डमी के रूप में कार्य करता है।
अगला कस्टम डायलॉग लेआउट रेस / लेआउट / डायलॉग। 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>
अंत में यहां हमारा संवाद है जो कस्टम दृश्य सेट करता है जो हमारे डायलॉग का उपयोग करता है। 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();
निष्कर्ष: मैंने कस्टमडायलॉग नाम के स्टाइल.एक्सएमएल में डायलॉग की थीम को ओवरराइड करने की कोशिश की। यह डायलॉग विंडो लेआउट को ओवरराइड करता है और मुझे एक पैडिंग सेट करने और पृष्ठभूमि की अस्पष्टता को बदलने का मौका देता है। यह सही समाधान नहीं हो सकता है, लेकिन मुझे आशा है कि यह आपकी मदद करता है .. :)