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

एंड्रॉइड में डायलॉग की स्क्रीन पोजीशन कैसे बदलें?

एंड्रॉइड में AlertDialog की पोजीशन सेट करना

यह उदाहरण दिखाता है कि WindowManager.LayoutParams और Gravity का उपयोग करके डायलॉग को स्क्रीन पर किसी भी स्थान पर कैसे प्रदर्शित किया जाता है।

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

Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट XML (खाली - डायलॉग प्रोग्रामेटिकली बनेगा)

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"
    tools:context=".MainActivity" />

चरण 3: MainActivity में डायलॉग पोजीशन लॉजिक

MainActivity.java:

import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.WindowManager;

public class MainActivity extends AppCompatActivity {

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

        // डायलॉग बनाएं और दिखाएं
        showDialogAtPosition(Gravity.BOTTOM); // अन्य विकल्प: TOP, CENTER, LEFT, RIGHT, आदि
    }

    private void showDialogAtPosition(int gravity) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("पोजीशन डेमो");
        builder.setMessage("यह डायलॉग स्क्रीन के नीचे दिखाई दे रहा है!");
        builder.setCancelable(false);
        
        builder.setPositiveButton("OK", (dialog, which) -> dialog.dismiss());
        builder.setNegativeButton("रद्द", (dialog, which) -> dialog.dismiss());

        AlertDialog dialog = builder.create();
        dialog.show();

        // डायलॉग दिखने के बाद पोजीशन सेट करें
        if (dialog.getWindow() != null) {
            dialog.getWindow().setGravity(gravity);
            
            // वैकल्पिक: मार्जिन/ऑफसेट जोड़ें
            WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
            params.y = 100; // नीचे से 100px ऊपर (BOTTOM ग्रेविटी के साथ)
            // params.x = 50; // बाएं/दाएं ऑफसेट के लिए
            dialog.getWindow().setAttributes(params);
        }
    }
}

सामान्य ग्रेविटी विकल्प

ग्रेविटीविवरण
Gravity.TOPस्क्रीन के शीर्ष पर
Gravity.BOTTOMस्क्रीन के नीचे (कीबोर्ड के ऊपर)
Gravity.CENTERस्क्रीन के केंद्र में (डिफ़ॉल्ट)
Gravity.LEFT / STARTबाएं किनारे पर
Gravity.RIGHT / ENDदाएं किनारे पर
Gravity.TOP | Gravity.STARTऊपर-बाएं कोने में
Gravity.BOTTOM | Gravity.ENDनीचे-दाएं कोने में

कस्टम पोजीशन के लिए x, y ऑफसेट

WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.gravity = Gravity.TOP | Gravity.START;
params.x = 50;  // बाएं से 50px
params.y = 200; // ऊपर से 200px
dialog.getWindow().setAttributes(params);

चरण 4: Manifest

<?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 पर क्लिक करें। ऐप शुरू होते ही डायलॉग स्क्रीन के नीचे (या सेट की गई पोजीशन पर) दिखाई देगा।

  1. Android में मेनू आइटम का टेक्स्ट कलर कैसे बदलें? Android में मेनू आइटम का टेक्स्ट कलर कैसे बदलें?

    Android ऐप थीम के जरिए मेनू आइटम्स का टेक्स्ट कलर कस्टमाइज़ करना styles.xml में थीम अट्रिब्यूट बदलकर सभी मेनू आइटम्स का टेक्स्ट कलर एक साथ सेट करने का तरीका। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: बेसिक लेआउट res/layout/activity_main.xml (खाली RelativeLayout): <

  1. Android में अलर्ट डायलॉग कैसे दिखाएं? Android में अलर्ट डायलॉग कैसे दिखाएं?

    Android में अलर्ट डायलॉग दिखाने का पूरा गाइड यह ट्यूटोरियल आपको Android ऐप में अलर्ट डायलॉग बनाने और दिखाने का चरणबद्ध तरीका बताता है। अलर्ट डायलॉग उपयोगकर्ता से पुष्टि लेने या महत्वपूर्ण जानकारी दिखाने के लिए उपयोगी होते हैं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio खोलें और File → New Project चु

  1. Android में स्क्रीन ब्राइटनेस को प्रोग्रामेटिकली कैसे बदलें? Android में स्क्रीन ब्राइटनेस को प्रोग्रामेटिकली कैसे बदलें?

    Android में SeekBar से स्क्रीन ब्राइटनेस कंट्रोल करने का गाइड यह ट्यूटोरियल दिखाता है कि कैसे Settings.System.SCREEN_BRIGHTNESS और SeekBar का उपयोग करके ऐप से सिस्टम स्क्रीन ब्राइटनेस बदली जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं। चरण 2: लेआउट