Android में अलर्ट डायलॉग का आकार कस्टमाइज़ करने का गाइड
यह ट्यूटोरियल दिखाता है कि कैसे WindowManager.LayoutParams का उपयोग करके डिफ़ॉल्ट AlertDialog की चौड़ाई और ऊंचाई को प्रोग्रामेटिकली बदला जाए।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल में कोड जोड़ें
res/layout/activity_main.xml में:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativeLayout"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Alert Dialog"
android:layout_centerInParent="true" />
</RelativeLayout>
चरण 3: MainActivity.java में कोड जोड़ें
src/MainActivity.java में:
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.RelativeLayout;
public class MainActivity extends AppCompatActivity {
Button button;
RelativeLayout relativeLayout;
Context context;
Activity myActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
relativeLayout = findViewById(R.id.relativeLayout);
context = getApplicationContext();
button = findViewById(R.id.button);
myActivity = MainActivity.this;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(myActivity);
builder.setTitle("My Action Bar");
builder.setMessage("This is my custom Action bar, do you like it?");
builder.setPositiveButton("Yes", null);
builder.setNegativeButton("No", null);
AlertDialog alertDialog = builder.create();
alertDialog.show();
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.copyFrom(alertDialog.getWindow().getAttributes());
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
alertDialog.getWindow().setAttributes(layoutParams);
}
});
}
}
मुख्य बिंदु
alertDialog.show()के बाद ही विंडो एट्रिब्यूट्स एक्सेस करेंcopyFrom()मौजूदा एट्रिब्यूट्स कॉपी करता हैMATCH_PARENTडायलॉग को पूर्ण स्क्रीन बनाता है- कस्टम आकार के लिए विशिष्ट पिक्सेल मान सेट करें
चरण 4: AndroidManifest.xml में कोड जोड़ें
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run आइकन पर क्लिक करें, बटन दबाएं और पूर्ण-स्क्रीन अलर्ट डायलॉग देखें।
बेहतर विकल्प: DialogFragment
आधुनिक Android विकास के लिए, DialogFragment का उपयोग करने की सलाह दी जाती है जो लाइफसाइकिल प्रबंधन और कॉन्फ़िगरेशन परिवर्तन को बेहतर ढंग से संभालता है।