डेस्कटॉप विंडोिंग का समर्थन

डेस्कटॉप विंडो मोड की मदद से, उपयोगकर्ता एक साथ कई ऐप्लिकेशन चला सकते हैं. साथ ही, ऐप्लिकेशन की विंडो का साइज़ बदला जा सकता है, ताकि डेस्कटॉप जैसा अनुभव मिल सके.

पहली इमेज में, डेस्कटॉप विंडो की सुविधा वाली स्क्रीन को व्यवस्थित किया जा सकता है. इन बातों का ध्यान रखें:

  • उपयोगकर्ता एक साथ कई ऐप्लिकेशन चला सकते हैं.
  • टास्कबार, डिसप्ले के सबसे नीचे एक तय जगह पर होता है. इसमें चल रहे ऐप्लिकेशन दिखते हैं. उपयोगकर्ता, ऐप्लिकेशन को झटपट ऐक्सेस करने के लिए पिन कर सकते हैं.
  • पसंद के मुताबिक बनाए जा सकने वाले नए हेडर बार को छोटा और बड़ा करने जैसे कंट्रोल के साथ हर विंडो के ऊपरी हिस्से को सजाएं.
पहली इमेज. टैबलेट पर डेस्कटॉप विंडो.

डिफ़ॉल्ट रूप से, Android टैबलेट पर ऐप्लिकेशन फ़ुल स्क्रीन पर खुलते हैं. डेस्कटॉप विंडो में किसी ऐप्लिकेशन को लॉन्च करने के लिए, स्क्रीन के सबसे ऊपर मौजूद विंडो हैंडल को दबाकर रखें और यूज़र इंटरफ़ेस (यूआई) के अंदर हैंडल को खींचें और छोड़ें, जैसा कि दूसरी इमेज में दिखाया गया है.

जब कोई ऐप्लिकेशन डेस्कटॉप विंडो मोड में खुला होता है, तो अन्य ऐप्लिकेशन भी डेस्कटॉप विंडो में खुलते हैं.

दूसरी इमेज. डेस्कटॉप विंडो मोड में जाने के लिए, ऐप्लिकेशन विंडो के हैंडल को दबाकर रखें और खींचें और छोड़ें.

उपयोगकर्ता, विंडो के हैंडल पर टैप या क्लिक करने पर दिखने वाले मेन्यू से भी डेस्कटॉप विंडो मोड चालू कर सकते हैं. इसके अलावा, Meta बटन (Windows, Command या Search) + Ctrl + डाउन ऐरो कीबोर्ड शॉर्टकट का इस्तेमाल करके भी ऐसा किया जा सकता है.

उपयोगकर्ता, सभी ऐक्टिव विंडो बंद करके या डेस्कटॉप विंडो के सबसे ऊपर मौजूद विंडो हैंडल को पकड़कर, ऐप्लिकेशन को स्क्रीन के सबसे ऊपर खींचकर, डेस्कटॉप विंडो मोड से बाहर निकलते हैं. Meta + H कीबोर्ड शॉर्टकट का इस्तेमाल करके भी, डेस्कटॉप विंडो से बाहर निकला जा सकता है. साथ ही, ऐप्लिकेशन को फिर से फ़ुल स्क्रीन पर चलाया जा सकता है.

डेस्कटॉप विंडो मोड पर वापस जाने के लिए, हाल ही में इस्तेमाल किए गए आइटम की स्क्रीन पर, डेस्कटॉप स्पेस टाइल पर टैप या क्लिक करें.

साइज़ बदलने की सुविधा और कंपैटबिलिटी मोड

डेस्कटॉप विंडो में, लॉक किए गए ओरिएंटेशन वाले ऐप्लिकेशन का साइज़ अपने हिसाब से बदला जा सकता है. इसका मतलब है कि भले ही कोई गतिविधि पोर्ट्रेट ओरिएंटेशन में लॉक की गई हो, फिर भी उपयोगकर्ता ऐप्लिकेशन का साइज़ बदलकर, लैंडस्केप ओरिएंटेशन वाली विंडो में देख सकते हैं.

तीसरी इमेज. पोर्ट्रेट मोड में इस्तेमाल करने पर पाबंदी वाले ऐप्लिकेशन की विंडो का साइज़, लैंडस्केप मोड में बदलना.

जिन ऐप्लिकेशन के लिए यह एलान किया गया है कि उनके आसपेक्ट रेशियो में बदलाव नहीं किया जा सकता (जैसे, resizeableActivity = false), उनके यूज़र इंटरफ़ेस (यूआई) को आसपेक्ट रेशियो में कोई बदलाव किए बिना स्केल किया जाता है.

चौथी इमेज. साइज़ न बदलने वाले ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई), विंडो के साइज़ के हिसाब से स्केल होता है.

ऐसे कैमरा ऐप्लिकेशन जो ओरिएंटेशन को लॉक करते हैं या जिनका साइज़ न बदलने का एलान किया गया है, उनके कैमरे के व्यूफ़ाइंडर के लिए खास तरह की सुविधाएं मिलती हैं: विंडो का साइज़ पूरी तरह बदला जा सकता है, लेकिन व्यूफ़ाइंडर के आसपेक्ट रेशियो में कोई बदलाव नहीं होता. ऐप्लिकेशन हमेशा पोर्ट्रेट या लैंडस्केप मोड में चलते हैं, इस बात को मानकर ऐप्लिकेशन हार्डकोड करते हैं या ऐसी गलतियां करते हैं जिनकी वजह से झलक या कैप्चर की गई इमेज के ओरिएंटेशन या आसपेक्ट रेशियो का गलत हिसाब लगाया जाता है. इस वजह से, इमेज खिंची हुई, बगल में या उल्टी दिखती हैं.

जब तक ऐप्लिकेशन पूरी तरह से रिस्पॉन्सिव कैमरा व्यूफ़ाइंडर को लागू करने के लिए तैयार नहीं हो जाते, तब तक खास तौर पर दी गई सेटिंग से उपयोगकर्ता को ज़्यादा बुनियादी अनुभव मिलता है. इससे गलत अनुमान की वजह से होने वाले असर को कम किया जा सकता है.

कैमरे के ऐप्लिकेशन के लिए काम करने वाले मोड के बारे में ज़्यादा जानने के लिए, डिवाइस के साथ काम करने वाला मोड लेख पढ़ें.

पांचवीं इमेज. विंडो का साइज़ बदलने पर भी, कैमरे के व्यूफ़ाइंडर का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) नहीं बदलता.

पसंद के मुताबिक बनाए जा सकने वाले हेडर इनसेट

डेस्कटॉप विंडो मोड में चलने वाले सभी ऐप्लिकेशन में हेडर बार होता है. ऐसा इमर्सिव मोड में भी होता है.
पक्का करें कि हेडर बार की वजह से आपके ऐप्लिकेशन का कॉन्टेंट छिप न गया हो. हेडर बार, कैप्शन बार इनसेट टाइप है: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar(); व्यू में, WindowInsets.Type.captionBar(), जो सिस्टम बार का हिस्सा है.

इनसेट को मैनेज करने के बारे में ज़्यादा जानने के लिए, अपने ऐप्लिकेशन में कॉन्टेंट को किनारे से किनारे तक दिखाना और Compose में विंडो के इनसेट मैनेज करना लेख पढ़ें.

हेडर बार को अपनी पसंद के मुताबिक भी बनाया जा सकता है. Android 15 में, दिखने का तरीका APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND टाइप को शामिल किया गया है. इससे हेडर बार को पारदर्शी बनाया जा सकता है, ताकि ऐप्लिकेशन हेडर बार में कस्टम कॉन्टेंट दिखा सकें.

इसके बाद, ऐप्लिकेशन अपने कॉन्टेंट के सबसे ऊपरी हिस्से को कैप्शन बार (बैकग्राउंड, कस्टम कॉन्टेंट वगैरह) की तरह दिखाने के लिए स्टाइल करते हैं. हालांकि, सिस्टम कैप्शन एलिमेंट (बंद करें और ज़्यादा करें बटन) को ऐप्लिकेशन के सबसे ऊपर मौजूद पारदर्शी कैप्शन बार पर सिस्टम ही दिखाता है.

ऐप्लिकेशन, APPEARANCE_LIGHT_CAPTION_BARS का इस्तेमाल करके, हल्के और गहरे रंग वाली थीम के लिए कैप्शन में सिस्टम एलिमेंट के दिखने के तरीके को टॉगल कर सकते हैं. यह ठीक उसी तरह है जिस तरह स्टेटस बार और नेविगेशन बार को टॉगल किया जाता है.

Android 15 में WindowInsets#getBoundingRects() तरीका भी जोड़ा गया है. इसकी मदद से, ऐप्लिकेशन कैप्शन बार इनसेट के बारे में ज़्यादा जानकारी हासिल कर सकते हैं. ऐप्लिकेशन, उन जगहों के बीच अंतर कर सकते हैं जहां सिस्टम, सिस्टम एलिमेंट दिखाता है और उन जगहों के बीच अंतर कर सकते हैं जहां ऐप्लिकेशन, सिस्टम एलिमेंट को ओवरलैप किए बिना कस्टम कॉन्टेंट दिखा सकते हैं.

एपीआई से मिले Rect ऑब्जेक्ट की सूची से, सिस्टम के उन क्षेत्रों का पता चलता है जिनसे बचना चाहिए. बची हुई कोई भी जगह (कैप्शन बार इनसेट से रेक्टैंगल घटाकर) वह जगह है जहां ऐप्लिकेशन सिस्टम के एलिमेंट को ओवरलैप किए बिना और इनपुट पाने की क्षमता के बिना ड्रॉ कर सकता है.

कस्टम हेडर लागू करने से पहले और बाद में Chrome.
छठी इमेज. कस्टम हेडर लागू करने से पहले और बाद में Chrome.

मल्टीटास्किंग और एक से ज़्यादा इंस्टेंस की सुविधा

डेस्कटॉप विंडो की मुख्य सुविधा, मल्टीटास्किंग है. आपके ऐप्लिकेशन के कई इंस्टेंस इस्तेमाल करने की अनुमति देने से, उपयोगकर्ताओं की प्रॉडक्टिविटी काफ़ी बढ़ सकती है.

Android 15 में PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI की सुविधा जोड़ी गई है. ऐप्लिकेशन इस सुविधा को सेट करके यह तय कर सकते हैं कि ऐप्लिकेशन को एक से ज़्यादा इंस्टेंस के तौर पर लॉन्च करने के लिए, सिस्टम यूज़र इंटरफ़ेस (यूआई) दिखाया जाना चाहिए.

हाथ के जेस्चर की मदद से, ऐप्लिकेशन के इंस्टेंस मैनेज करना

मल्टी-विंडो मोड में, उपयोगकर्ता किसी व्यू एलिमेंट को ऐप्लिकेशन की विंडो से बाहर खींचकर, नया ऐप्लिकेशन इंस्टेंस शुरू कर सकते हैं. उपयोगकर्ता भी एक ही ऐप के दो इंस्टेंस के बीच एलिमेंट को ले जा सकते हैं.

सातवीं इमेज. किसी टैब को डेस्कटॉप विंडो से बाहर खींचकर, Chrome का नया इंस्टेंस शुरू करें.

Android 15 में, खींचें और छोड़ें सुविधा को पसंद के मुताबिक बनाने के लिए दो फ़्लैग जोड़े गए हैं:

  • DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG: इससे पता चलता है कि अगर कोई विंडो ड्रॉप को मैनेज नहीं करती है, तो सिस्टम को ड्रैग करने की कार्रवाई शुरू करने के लिए कहा जाना चाहिए. इस फ़्लैग का इस्तेमाल करते समय, कॉलर को ClipData के साथ ऐसा Item देना होगा जिसमें लॉन्च की जाने वाली गतिविधि के लिए, बदलाव न किया जा सकने वाला IntentSender शामिल हो (ClipData.Item.Builder#setIntentSender() देखें). सिस्टम, मौजूदा स्क्रीन साइज़ या विंडो मोड जैसे फ़ैक्टर के आधार पर, इंटेंट को लॉन्च कर सकता है या नहीं. अगर सिस्टम इंटेंट को लॉन्च नहीं करता है, तो सामान्य ड्रैग और ड्रॉप फ़्लो की मदद से इंटेंट रद्द कर दिया जाता है.

  • DRAG_FLAG_GLOBAL_SAME_APPLICATION: इससे पता चलता है कि ड्रैग ऑपरेशन, विंडो की सीमाओं को पार कर सकता है (एक ही ऐप्लिकेशन के कई इंस्टेंस के लिए).

    जब startDragAndDrop() को इस फ़्लैग के साथ कॉल किया जाता है, तो सिर्फ़ एक ही ऐप्लिकेशन की दिखने वाली विंडो ही खींचने और छोड़ने की प्रोसेस में हिस्सा ले सकती हैं. साथ ही, खींचे गए कॉन्टेंट को भी सिर्फ़ वे विंडो ही पा सकती हैं.

आठवीं इमेज. टैब को Chrome ऐप्लिकेशन के दो इंस्टेंस के बीच ले जाएं.

अतिरिक्त ऑप्टिमाइज़ेशन

ऐप्लिकेशन लॉन्च करने के तरीके को पसंद के मुताबिक बनाएं. साथ ही, डेस्कटॉप विंडो से फ़ुल स्क्रीन पर ऐप्लिकेशन ट्रांज़िशन करें.

डिफ़ॉल्ट साइज़ और पोज़िशन तय करना

सभी ऐप्लिकेशन को बड़ी विंडो की ज़रूरत नहीं होती. भले ही, उनका साइज़ बदला जा सकता हो. किसी गतिविधि के लॉन्च होने पर, उसका डिफ़ॉल्ट साइज़ और पोज़िशन तय करने के लिए, ActivityOptions#setLaunchBounds() वाले तरीके का इस्तेमाल किया जा सकता है.

डेस्कटॉप स्पेस से फ़ुल-स्क्रीन मोड में जाना

Activity#requestFullScreenMode() पर कॉल करने से, ऐप्लिकेशन फ़ुल-स्क्रीन में जा सकते हैं. इस तरीके से, ऐप्लिकेशन को सीधे डेस्कटॉप विंडो से फ़ुल स्क्रीन में देखा जा सकता है.