এখানে অন্যান্য উত্তরগুলি সমস্তই বোঝায়, তবে ফ্যাবিয়ানের যা প্রয়োজন তা তা পূরণ করে নি। এখানে আমার একটি সমাধান। এটি নিখুঁত সমাধান নাও হতে পারে তবে এটি আমার পক্ষে কাজ করে। এটি এমন একটি ডায়ালগ দেখায় যা ফুলস্ক্রিনে রয়েছে তবে আপনি উপরে, নীচে, বাম বা ডানদিকে কোনও প্যাডিং নির্দিষ্ট করতে পারেন।
প্রথমে এটি আপনার res / মান / স্টাইল.এক্সএমএলে রাখুন:
<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>
আপনি দেখতে পাচ্ছেন যে আমার সেখানে অ্যান্ড্রয়েড রয়েছে: প্যাডিংটপ = 20 ডিপি মূলত আপনার যা প্রয়োজন। অ্যান্ড্রয়েড windowBackground = @ রং / Black0Percent মাত্র একটি রঙের কোড আমার color.xml উপর ঘোষিত হয়
মাঝামাঝি / মান / color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black0Percent">#00000000</color>
</resources>
সেই রঙের কোডটি ডায়ালগের ডিফল্ট উইন্ডো ব্যাকগ্রাউন্ডটিকে 0% স্বচ্ছ রঙের সাথে প্রতিস্থাপন করতে ডামি হিসাবে কাজ করে।
এর পরে কাস্টম ডায়ালগ লেআউটটি রেজ / লেআউট / ডায়লগ.এক্সএমএল তৈরি করুন
<?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 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();
উপসংহার: আমি কাস্টমডায়ালগ নামের স্টাইলস.এক্সএমএলে ডায়ালগটির থিমটিকে ওভাররাইড করার চেষ্টা করেছি। এটি ডায়ালগ উইন্ডো বিন্যাসটিকে ওভাররাইড করে এবং আমাকে প্যাডিং সেট করার এবং পটভূমির অস্বচ্ছতা পরিবর্তন করার সুযোগ দেয়। এটি নিখুঁত সমাধান নাও হতে পারে তবে আমি আশা করি এটি আপনাকে সহায়তা করবে .. :)