अडैप्टिव ऐप्लिकेशन, हर साइज़ के डिसप्ले पर काम करते हैं. जैसे, डिवाइस की पूरी स्क्रीन, जिसका साइज़ बदला जा सकता है विंडो को मल्टी-विंडो मोड में, पोर्ट्रेट और लैंडस्केप ओरिएंटेशन में, फ़ोल्ड किया जा सकता है फ़ोल्ड किए जा सकने वाले डिवाइसों की स्क्रीन, अनफ़ोल्डेड डिसप्ले भी दिख रहे हैं.
कॉन्फ़िगरेशन सेटिंग और एपीआई की छोटी सूची का इस्तेमाल करके, अपने ऐप्लिकेशन को अपने हिसाब से बनाया जा सकता है दिखाई देता है. हालांकि, कुछ पुरानी सेटिंग और एपीआई, अडैप्टिव ऐप्लिकेशन के साथ काम नहीं करते और इससे बचना चाहिए.
साइज़ बदलने की क्षमता
अडैप्टिव ऐप्लिकेशन, मल्टी-विंडो मोड और ऐप्लिकेशन के साइज़ में बदलाव करने की सुविधा देते हैं.
resizeableActivity
की विशेषता <activity>
और
<application>
मेनिफ़ेस्ट एलिमेंट, मल्टी-विंडो को चालू या बंद करता है
Android 11 (एपीआई लेवल 30) और इससे पहले के वर्शन पर काम करता हो. Android 12 (एपीआई लेवल 31) पर और
बड़ी और बड़ी स्क्रीन, कई विंडो वाले मोड के साथ काम करती है. इससे कोई फ़र्क़ नहीं पड़ता कि
एट्रिब्यूट की वैल्यू सबमिट करें. ज़्यादा जानकारी के लिए, मल्टी-विंडो मोड काम करता है लेख पढ़ें.
अपने ऐप्लिकेशन को मल्टी-विंडो में हिस्सा लेने की अनुमति दें उपयोगकर्ता की उत्पादकता और संतुष्टि में बढ़ोतरी हुई.
अगर आपका ऐप्लिकेशन, एपीआई लेवल 24 से कम को टारगेट करता है, तो resizeableActivity="true"
सेट करें;
इस बारे में न सोचें—Android 7.0 (एपीआई) पर डिफ़ॉल्ट रूप से, यह true
के तौर पर उपलब्ध है
लेवल 24) और उससे ऊपर का लेवल.
किसी भी एपीआई लेवल के लिए resizeableActivity="false"
सेट न करें. अपने ऐप्लिकेशन को ऐप्लिकेशन पर उपलब्ध न कराएं
इसमें मल्टी-विंडो मोड भी शामिल है.
ओरिएंटेशन
अडैप्टिव ऐप्लिकेशन, पोर्ट्रेट और लैंडस्केप ओरिएंटेशन के साथ काम करते हैं, भले ही डिसप्ले कुछ भी हो साइज़ या विंडो मोड की ज़रूरत होती है.
screenOrientation
मेनिफ़ेस्ट सेटिंग, गतिविधि ओरिएंटेशन पर पाबंदी लगाती है.
अपने ऐप्लिकेशन मेनिफ़ेस्ट से screenOrientation
सेटिंग को हटाएं.
ऐप्लिकेशन का ओरिएंटेशन लॉक करने से विंडो के साइज़ में बदलाव नहीं होते. ऐप्लिकेशन
डिवाइस के फ़ोल्ड या अनफ़ोल्ड होने पर, उसके साइज़ में बदलाव किया जाता है.
या जब किसी फ़्री-फ़ॉर्म विंडो का साइज़ बदला जाता है. आपके ऐप्लिकेशन में विंडो में बदलाव करने की सुविधा होनी चाहिए
साइज़, screenOrientation
एट्रिब्यूट की सेटिंग पर ध्यान दिए बिना.
गतिविधि की दिशा पर पाबंदी न लगाएं. स्क्रीन की दिशा को लॉक करने वाले ऐप्लिकेशन लेटरबॉक्स किए गए हैं बड़ी स्क्रीन वाले डिवाइस पर और असंगत विंडो साइज़ पर.
लेटरबॉक्स किए गए ऐप्लिकेशन, Google Play पर कम खोजे जा सकते हैं टैबलेट, फ़ोल्ड किए जा सकने वाले डिवाइस, और ChromeOS डिवाइस.
आसपेक्ट रेशियो
स्क्रीन और विंडो का साइज़ अलग-अलग होता है. इसलिए, उनके आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) भी अलग-अलग होते हैं. छोटा, वर्गाकार, छोटा और चौड़ा.
minAspectRatio
और maxAspectRatio
मेनिफ़ेस्ट सेटिंग में पाबंदी है
आपके ऐप्लिकेशन का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) और हार्ड कोड की गई वैल्यू का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में किया जाता है.
स्क्रीन के हिसाब से अपने ऐप्लिकेशन के साइज़ में बदलाव करें, फिर चाहे ऐप्लिकेशन का डाइमेंशन उससे कुछ भी हो.
अपने ऐप्लिकेशन से minAspectRatio
और maxAspectRatio
सेटिंग हटाएं
मेनिफ़ेस्ट. इसके अलावा, यह भी पक्का करें कि ऐप्लिकेशन का साइज़ बदला जा सके और आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) अपने-आप ठीक हो जाए
(साइज़ बदलने की संभावना सेक्शन देखें).
अपने ऐप्लिकेशन के मिलते-जुलते डाइमेंशन कंट्रोल करने की कोशिश न करें. अगर आपका ऐप्लिकेशन किसी या किसी ऐसी विंडो में हो जिसका आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) ऐप्लिकेशन के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में, आपके ऐप्लिकेशन को लेटरबॉक्स किया गया है.
Android 14 (एपीआई लेवल 34) और उसके बाद के वर्शन पर, उपयोगकर्ता ऐप्लिकेशन के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बदल सकते हैं का इस्तेमाल करें. डिवाइस देखें कंपैटबिलिटी मोड.
विंडो का साइज़
अलग-अलग डिसप्ले साइज़ के लिए लेआउट ऑप्टिमाइज़ करना, इसका मुख्य सिद्धांत है अडैप्टिव डिज़ाइन. अडैप्टिव ऐप्लिकेशन, डिवाइस के बजाय ऐप्लिकेशन की विंडो के साइज़ पर फ़ोकस करते हैं स्क्रीन का साइज़. जब ऐप्लिकेशन फ़ुल स्क्रीन मोड में होता है, तो ऐप्लिकेशन की विंडो को डिवाइस की स्क्रीन माना जाता है.
विंडो साइज़ क्लास की मदद से, ऐप्लिकेशन को तय करने और कैटगरी में बांटने का बेहतर तरीका मिलता है ऐप्लिकेशन विंडो का साइज़ कितना होगा. विंडो के तौर पर लेआउट बदलकर, अपने ऐप्लिकेशन के हिसाब से लेआउट सेट करें साइज़ क्लास में बदलाव होता है.
विंडो के साइज़ की क्लास के हिसाब से, अपने ऐप्लिकेशन की विंडो के साइज़ का आकलन करें.
विंडो के साइज़ की क्लास तय करने के लिए, currentWindowAdaptiveInfo()
का इस्तेमाल करें
Compose Material 3 अडैप्टिव लाइब्रेरी का टॉप-लेवल फ़ंक्शन. ज़्यादा के लिए
ज़्यादा जानकारी के लिए, अडैप्टिव ऐप्लिकेशन बनाना लेख पढ़ें.
विंडो साइज़ क्लास की परिभाषाओं और में एपीआई की सुविधा शामिल है. विंडो के साइज़ का हिसाब लगाने के लिए, काम न करने वाले एपीआई का इस्तेमाल न करें.
ऐसे एपीआई जो अब काम नहीं करते
पुराने प्लैटफ़ॉर्म के एपीआई, ऐप्लिकेशन विंडो को सही तरीके से मेज़र नहीं करते; कुछ इसका इस्तेमाल करके, डिवाइस की स्क्रीन, कुछ में सिस्टम की सजावट शामिल नहीं है.
WindowManager#getCurrentWindowMetrics()
का इस्तेमाल करें और
ऐप्लिकेशन विंडो का साइज़ देखने के लिए WindowMetrics#getBounds()
. इस्तेमाल की जाने वाली चीज़ें
डिसप्ले सघनता पाने के लिए WindowMetrics#getDensity()
.
विंडो का साइज़ तय करने के लिए, उन Display
एपीआई का इस्तेमाल न करें जो अब काम नहीं करते:
getSize()
: Android 11 (एपीआई लेवल 30) में यह सुविधा काम नहीं करतीgetMetrics()
: Android 11 (एपीआई लेवल 30) में यह सुविधा काम नहीं करतीgetRealSize()
: Android 12 (एपीआई लेवल 31) में यह सुविधा काम नहीं करतीgetRealMetrics()
: Android 12 (एपीआई लेवल 31) में यह सुविधा काम नहीं करती
Compose
Jetpack Compose, ज़रूरत के हिसाब से यूज़र इंटरफ़ेस (यूआई) डेवलपमेंट के लिए डिज़ाइन किया गया है. कोई एक्सएमएल नहीं, कोई लेआउट नहीं
फ़ाइलें, संसाधन क्वालीफ़ायर नहीं. सिर्फ़ Kotlin-आधारित, स्टेटलेस कंपोज़ेबल
जैसे कि Column
, Row
, और Box
जो आपके यूज़र इंटरफ़ेस (यूआई) और मॉडिफ़ायर की जानकारी देते हैं
जैसे offset
, padding
, और size
यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाने के लिए
एलिमेंट.
Compose का इस्तेमाल करके बनाएं. नई सुविधाओं और रिलीज़ के बारे में अप-टू-डेट रहें.
पुरानी टेक्नोलॉजी पर भरोसा न करें. अपने ऐप को पुराना न होने दें.
Material 3 वाली अडैप्टिव लाइब्रेरी कंपोज़ करें
Compose Material 3 की अडैप्टिव लाइब्रेरी से ऐसे कॉम्पोनेंट और एपीआई मिलते हैं जो आसानी से इस्तेमाल किए जा सकने वाले ऐप्लिकेशन डेवलप करने में मदद करते हैं.
अपने ऐप्लिकेशन को लोगों के हिसाब से बनाने के लिए, इन एपीआई का इस्तेमाल करें:
NavigationSuiteScaffold
: नेविगेशन बार और नेविगेशन बार के बीच स्विच करता है नेविगेशन रेल, ऐप्लिकेशन की विंडो के साइज़ की क्लास पर निर्भर करती है.ListDetailPaneScaffold
: सूची की जानकारी वाला कैननिकल लेआउट लागू करता है. इससे लेआउट को ऐप्लिकेशन की विंडो के साइज़ के हिसाब से सेट किया जा सकता है.SupportingPaneScaffold
: सपोर्ट करने वाले पैनल को कैननिकल पेज पर लागू करता है लेआउट.
कार को बार-बार न बदलें. डेवलपर को बेहतर तरीके से काम करने में मदद करने का मौका न गवाएं यह सुविधा सभी Jetpack Compose लाइब्रेरी से उपलब्ध कराई जाती है.
लेआउट
उपयोगकर्ता उम्मीद करते हैं कि ऐप्लिकेशन, डिसप्ले स्पेस का ज़्यादा से ज़्यादा फ़ायदा लेंगे कॉन्टेंट या बेहतर कंट्रोल.
अडैप्टिव ऐप्लिकेशन, डिसप्ले में हुए बदलावों के हिसाब से लेआउट ऑप्टिमाइज़ करते हैं. खास तौर पर, ऐप्लिकेशन विंडो के साइज़ या डिवाइस की स्थिति में बदलाव.
उपलब्ध सुविधा का फ़ायदा लेने के लिए, विंडो का साइज़ बदलने पर यूआई के कॉम्पोनेंट बदलें डिसप्ले स्पेस. उदाहरण के लिए, कॉम्पैक्ट मोड पर इस्तेमाल किए गए सबसे नीचे के नेविगेशन बार को स्वैप करें मध्यम और बड़ी विंडो पर वर्टिकल नेविगेशन रेल के लिए, विंडो के साइज़. डायलॉग बॉक्स की जगह बदलें, ताकि उन्हें सभी डिसप्ले पर ऐक्सेस किया जा सके.
कॉन्टेंट को पैनल में व्यवस्थित करके, इस तरह के कई पैनल लेआउट चालू करें सूची-ब्यौरा और डाइनैमिक कॉन्टेंट डिसप्ले के लिए सहायक पैनल.
अगर कॉन्टेंट पैनल का इस्तेमाल नहीं किया जा रहा है, तो यूज़र इंटरफ़ेस (यूआई) एलिमेंट को भरने के लिए खींचें और छोड़ें
डिसप्ले स्पेस उपलब्ध होगा. टेक्स्ट की लंबी लाइनों को पढ़ना मुश्किल होता है. स्ट्रैच किया गया
बटन खराब तरीके से डिज़ाइन किए गए हैं. अगर आप Modifier.fillMaxWidth
का इस्तेमाल करते हैं, तो
यह मान लिया जाए कि सभी डिस्प्ले साइज़ के लिए सही व्यवहार है.
इनपुट डिवाइस
उपयोगकर्ता, ऐप्लिकेशन के साथ इंटरैक्ट करने के लिए सिर्फ़ टचस्क्रीन का इस्तेमाल नहीं करते.
अडैप्टिव ऐप्लिकेशन में बाहरी कीबोर्ड, माउस, और स्टाइलस इस्तेमाल किए जा सकते हैं, ताकि इससे लोगों को डिवाइस के नाप या आकार के हिसाब से, बेहतर उपयोगकर्ता अनुभव मिलता है कर सकते हैं.
Android फ़्रेमवर्क की बिल्ट-इन सुविधाओं के लिए, कीबोर्ड टैब नेविगेशन और माउस या ट्रैकपैड पर क्लिक करें, चुनें, और स्क्रोल करें. पब्लिश करें कीबोर्ड शॉर्टकट हेल्पर में, अपने ऐप्लिकेशन के कीबोर्ड शॉर्टकट इस्तेमाल करें.
उपयोगकर्ताओं को किसी भी ईमेल पते पर लिखने के लिए, Jetpack Material 3 लाइब्रेरी का इस्तेमाल करें
स्टाइलस का इस्तेमाल करके TextField
कॉम्पोनेंट.
इनपुट के दूसरे तरीकों को नामुमकिन न बनाएं. सुलभता सुविधाएं शामिल न करें समस्याएं.
खास जानकारी
- Compose और Material 3 की अडैप्टिव लाइब्रेरी की मदद से अपना ऐप्लिकेशन बनाएं
- विंडो साइज़ क्लास के लिए बेस लेआउट
- मल्टी-पैनल लेआउट बनाना
- ऐप्लिकेशन का साइज़ बदलने की सुविधा चालू करना
- गतिविधि ओरिएंटेशन को कभी भी लॉक न करें
- आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) पर पाबंदी न लगाएं
- टच के अलावा अन्य इनपुट सपोर्ट
- काम न करने वाले एपीआई से बचें
✓ करें आपके उपयोगकर्ता क्या उम्मीद करते हैं: अपने ऐप्लिकेशन को उन अलग-अलग तरह के डिवाइसों के हिसाब से ऑप्टिमाइज़ करें जिन पर लोग हर दिन भरोसा करते हैं.
इंतज़ार ✗ न करें. आज ही शुरू करें!