Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में अलर्ट डायलॉग को स्क्रीन का 50% आकार कैसे बनाएं?

Android में अलर्ट डायलॉग की चौड़ाई/ऊंचाई कस्टमाइज करने का तरीका

डिफ़ॉल्ट रूप से अलर्ट डायलॉग स्क्रीन की चौड़ाई के 80-90% तक होता है। यह उदाहरण दिखाता है कि WindowManager.LayoutParams का उपयोग करके डायलॉग को स्क्रीन के 50% चौड़ाई और ऊंचाई तक कैसे सीमित किया जाए।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnAlert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top|center_horizontal"
        android:layout_marginTop="50dp"
        android:text="Show Alert Dialog" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

चरण 3: MainActivity.java

package com.app.sample;

import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    private CoordinatorLayout coordinatorLayout;
    private Button btnAlert;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        coordinatorLayout = findViewById(R.id.coordinator_layout);
        btnAlert = findViewById(R.id.btnAlert);

        btnAlert.setOnClickListener(view -> {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("नमस्ते!");
            builder.setMessage("क्या आप इसे कहना चाहते हैं?");
            builder.setPositiveButton("हाँ", (dialog, which) -> {});
            builder.setNegativeButton("नहीं", (dialog, which) -> {});

            AlertDialog dialog = builder.create();
            dialog.show(); // पहले show() करें, फिर एट्रिब्यूट्स बदलें

            // स्क्रीन डायमेंशन प्राप्त करें
            DisplayMetrics displayMetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            int displayWidth = displayMetrics.widthPixels;
            int displayHeight = displayMetrics.heightPixels;

            // डायलॉग विंडो एट्रिब्यूट्स सेट करें
            WindowManager.LayoutParams params = new WindowManager.LayoutParams();
            params.copyFrom(dialog.getWindow().getAttributes());
            params.width = (int) (displayWidth * 0.5f);  // 50% चौड़ाई
            params.height = (int) (displayHeight * 0.5f); // 50% ऊंचाई
            dialog.getWindow().setAttributes(params);
        });
    }
}

चरण 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.app.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>

बेहतर विकल्प: DialogFragment + onStart()

अधिक मजबूत और लाइफसाइकिल-सुरक्षित तरीके के लिए DialogFragment उपयोग करें:

public class CustomDialogFragment extends DialogFragment {
    @Override
    public void onStart() {
        super.onStart();
        if (getDialog() != null && getDialog().getWindow() != null) {
            DisplayMetrics metrics = new DisplayMetrics();
            requireActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
            int width = (int) (metrics.widthPixels * 0.5f);
            int height = (int) (metrics.heightPixels * 0.5f);
            getDialog().getWindow().setLayout(width, height);
        }
    }
}

नोट

  • मूल कोड में btn_alert ID टाइपो था; यहां btnAlert से ठीक किया गया।
  • dialog.show() के बाद ही विंडो एट्रिब्यूट्स बदलें, अन्यथा क्रैश हो सकता है।
  • न्यूनतम चौड़ाई/ऊंचाई के लिए setMinWidth() / setMinHeight() भी उपयोग कर सकते हैं।
  1. Android में विभिन्न स्क्रीन साइज़ को सपोर्ट कैसे करें? Android में विभिन्न स्क्रीन साइज़ को सपोर्ट कैसे करें?

    यह उदाहरण दर्शाता है कि Android ऐप में विभिन्न स्क्रीन साइज़ और डेंसिटी को कैसे सपोर्ट किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरकर प्रोजेक्ट बनाएं। चरण 2: लेआउट XML में कोड जोड़ें res/layout/activity_main.xml में निम्नलिखित कोड जोड़ें

  1. Android में GridLayout को स्क्रीन साइज़ में फिट कैसे करें? Android में GridLayout को स्क्रीन साइज़ में फिट कैसे करें?

    यह उदाहरण दर्शाता है कि GridLayout को प्रोग्रामेटिकली डायनामिक कॉलम/रो काउंट के साथ स्क्रीन साइज़ में फिट कैसे किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <GridLayout

  1. अपनी Android स्क्रीन को TV पर कैसे कास्ट करें अपनी Android स्क्रीन को TV पर कैसे कास्ट करें

    यदि आप अपने Android डिवाइस से वीडियो और छवियों को बड़ी स्क्रीन पर देखना पसंद करते हैं, तो अपनी Android स्क्रीन को अपने TV या PC पर कास्ट करें। जबकि इनमें से कुछ विधियों के लिए आपके Android डिवाइस का Miracast के साथ संगत होना आवश्यक है, ये निश्चित रूप से एकमात्र विकल्प नहीं हैं। कास्टिंग शुरू करें और