रिस्पॉन्सिव/अडैप्टिव लेआउट, स्क्रीन साइज़ के हिसाब से उपयोगकर्ताओं को बेहतर अनुभव देते हैं. रिस्पॉन्सिव/अडैप्टिव लेआउट लागू करें, ताकि आपका व्यू‑आधारित ऐप्लिकेशन सभी डिसप्ले साइज़, ओरिएंटेशन, और कॉन्फ़िगरेशन के साथ काम कर सके. इसमें मल्टी-विंडो मोड जैसे रिसाइज़ किए जा सकने वाले कॉन्फ़िगरेशन भी शामिल हैं.
रिस्पॉन्सिव डिज़ाइन
अलग-अलग डिवाइस फ़ॉर्म फ़ैक्टर के लिए सहायता देने का पहला चरण, ऐसा लेआउट बनाना है जो आपके ऐप्लिकेशन के लिए उपलब्ध डिसप्ले स्पेस में होने वाले बदलावों के हिसाब से रिस्पॉन्सिव हो.
ConstraintLayout
रिस्पॉन्सिव लेआउट बनाने का सबसे अच्छा तरीका यह है कि अपने यूज़र इंटरफ़ेस (यूआई) के लिए, ConstraintLayout को बेस लेआउट के तौर पर इस्तेमाल करें. ConstraintLayout की मदद से, लेआउट में मौजूद अन्य व्यू के साथ स्पेशल रिलेशनशिप के हिसाब से, हर व्यू की पोज़िशन और साइज़ तय किया जा सकता है. इसके बाद, डिसप्ले स्पेस में बदलाव होने पर सभी व्यू एक साथ मूव हो सकते हैं और उनका साइज़ बदल सकता है.
ConstraintLayout की मदद से लेआउट बनाने का सबसे आसान तरीका, Android Studio में Layout Editor का इस्तेमाल करना है. लेआउट एडिटर की मदद से, नए व्यू को लेआउट में ड्रैग किया जा सकता है. साथ ही, पैरंट और सिबलिंग व्यू के हिसाब से कंस्ट्रेंट लागू किए जा सकते हैं. इसके अलावा, व्यू प्रॉपर्टी सेट की जा सकती हैं. इन सभी कामों के लिए, आपको मैन्युअल तरीके से किसी भी एक्सएमएल में बदलाव करने की ज़रूरत नहीं होती.
ConstraintLayout दिखाया गया है.
ज़्यादा जानकारी के लिए, ConstraintLayout की मदद से रिस्पॉन्सिव यूज़र इंटरफ़ेस (यूआई) बनाना लेख पढ़ें.
चौड़ाई और ऊंचाई को अडैप्टिव बनाना
यह पक्का करने के लिए कि आपका लेआउट अलग-अलग डिसप्ले साइज़ के हिसाब से रिस्पॉन्सिव हो, व्यू कॉम्पोनेंट की चौड़ाई और ऊंचाई के लिए, हार्ड‑कोड की गई वैल्यू के बजाय wrap_content, match_parent या 0dp (match constraint) का इस्तेमाल करें:
wrap_content: व्यू, अपने साइज़ को इस तरह से सेट करता है कि वह व्यू में मौजूद कॉन्टेंट के हिसाब से फ़िट हो जाए.match_parent: व्यू, पैरंट व्यू में ज़्यादा से ज़्यादा जगह घेरता है.0dp (match constraint):ConstraintLayoutमें,match_parentकी तरह. यह व्यू, व्यू की सीमाओं के अंदर उपलब्ध पूरी जगह लेता है.
उदाहरण के लिए:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lorem_ipsum" />
चौथे फ़िगर में दिखाया गया है कि डिवाइस के ओरिएंटेशन के हिसाब से डिसप्ले की चौड़ाई बदलने पर, TextView की चौड़ाई और लंबाई कैसे बदलती है.
TextView.
TextView, उपलब्ध जगह (match_parent) के हिसाब से अपनी चौड़ाई सेट करता है. साथ ही, इसमें मौजूद टेक्स्ट (wrap_content) की ऊंचाई के हिसाब से अपनी ऊंचाई सेट करता है. इससे व्यू, अलग-अलग डिसप्ले डाइमेंशन और अलग-अलग साइज़ के टेक्स्ट के हिसाब से अडजस्ट हो पाता है.
अगर LinearLayout का इस्तेमाल किया जा रहा है, तो लेआउट वेट के आधार पर चाइल्ड व्यू को बड़ा किया जा सकता है. इससे व्यू, उपलब्ध जगह के हिसाब से भर जाते हैं. हालांकि, नेस्ट किए गए LinearLayout में वेट का इस्तेमाल करने पर, सिस्टम को हर व्यू के साइज़ का पता लगाने के लिए कई लेआउट पास करने पड़ते हैं. इससे यूज़र इंटरफ़ेस (यूआई) की परफ़ॉर्मेंस धीमी हो जाती है.
ConstraintLayout की मदद से, LinearLayout में उपलब्ध लगभग सभी लेआउट बनाए जा सकते हैं. इससे परफ़ॉर्मेंस पर कोई असर नहीं पड़ता. इसलिए, नेस्ट किए गए LinearLayout को ConstraintLayout में बदलें. इसके बाद, कंस्ट्रेंट चेन की मदद से, वज़न वाले लेआउट तय किए जा सकते हैं.
अडैप्टिव डिज़ाइन
आपके ऐप्लिकेशन का लेआउट हमेशा अलग-अलग डिसप्ले साइज़ के हिसाब से रिस्पॉन्सिव होना चाहिए. हालांकि, रिस्पॉन्सिव लेआउट भी हर डिवाइस या मल्टी‑विंडो मोड डिसप्ले पर, उपयोगकर्ता को सबसे अच्छा अनुभव नहीं दे सकता. उदाहरण के लिए, हो सकता है कि आपने फ़ोन के लिए जो यूज़र इंटरफ़ेस (यूआई) डिज़ाइन किया है वह टैबलेट पर लोगों को बेहतर अनुभव न दे. अडैप्टिव डिज़ाइन, अलग-अलग डिसप्ले डाइमेंशन के लिए ऑप्टिमाइज़ किए गए वैकल्पिक लेआउट उपलब्ध कराता है.
सूची की जानकारी वाले यूज़र इंटरफ़ेस (यूआई) के लिए SlidingPaneLayout
सूची-जानकारी वाला यूज़र इंटरफ़ेस (यूआई), आम तौर पर अलग-अलग साइज़ की स्क्रीन पर अलग-अलग उपयोगकर्ता अनुभव देता है. बड़ी स्क्रीन पर, सूची और जानकारी वाले पैनल आम तौर पर एक-दूसरे के बगल में होते हैं. सूची में मौजूद किसी आइटम को चुनने पर, आइटम की जानकारी, जानकारी वाले पैनल में दिखती है. इससे यूज़र इंटरफ़ेस (यूआई) में कोई बदलाव नहीं होता. दोनों पैनल साथ-साथ दिखते रहते हैं. हालांकि, छोटी स्क्रीन पर दोनों पैन अलग-अलग दिखते हैं. हर पैन, डिसप्ले के पूरे हिस्से पर दिखता है. सूची वाले पैनल में किसी आइटम को चुनने पर, ज़्यादा जानकारी वाला पैनल (इसमें चुने गए आइटम की जानकारी होती है) सूची वाले पैनल की जगह ले लेता है. 'वापस जाएं' नेविगेशन की मदद से, जानकारी वाले पैनल की जगह सूची दिखती है.
SlidingPaneLayout
यह तय करने के लिए लॉजिक मैनेज करता है कि मौजूदा विंडो साइज़ के लिए, उपयोगकर्ता के लिए कौनसा अनुभव सही है:
<?xml version="1.0" encoding="utf-8"?>
<androidx.slidingpanelayout.widget.SlidingPaneLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start" />
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:defaultNavHost="true"
app:navGraph="@navigation/item_navigation" />
</androidx.slidingpanelayout.widget.SlidingPaneLayout>
SlidingPaneLayout में शामिल दो व्यू के layout_width और layout_weight एट्रिब्यूट से, SlidingPaneLayout के व्यवहार का पता चलता है. इस उदाहरण में, अगर विंडो इतनी बड़ी है कि दोनों व्यू दिख सकें (कम से कम 580 डीपी चौड़ी), तो पैन एक-दूसरे के बगल में दिखते हैं. हालांकि, अगर विंडो की चौड़ाई 580 डीपी से कम है, तो हर पैनल एक-दूसरे के ऊपर स्लाइड करता है, ताकि वह पूरे ऐप्लिकेशन की विंडो पर अलग-अलग तरीके से दिखे.
अगर विंडो की चौड़ाई, तय की गई कुल कम से कम चौड़ाई (580dp) से ज़्यादा है, तो दोनों पैन का साइज़ तय करने के लिए, layout_weight वैल्यू का इस्तेमाल किया जा सकता है. उदाहरण में, सूची वाले पैन की चौड़ाई हमेशा 280dp होती है, क्योंकि इसका कोई वेट नहीं होता.
हालांकि, व्यू की layout_weight सेटिंग की वजह से, जानकारी वाला पैनल हमेशा 580dp से ज़्यादा के किसी भी हॉरिज़ॉन्टल स्पेस को भरता है.
वैकल्पिक लेआउट रिसॉर्स
डिसप्ले के अलग-अलग साइज़ के हिसाब से यूज़र इंटरफ़ेस (यूआई) डिज़ाइन को अडजस्ट करने के लिए, संसाधन क्वालिफ़ायर से पहचाने गए वैकल्पिक लेआउट का इस्तेमाल करें.
अपने ऐप्लिकेशन के सोर्स कोड में अतिरिक्त res/layout/ डायरेक्ट्री बनाकर, स्क्रीन के हिसाब से अडैप्टिव लेआउट दिए जा सकते हैं. हर उस स्क्रीन कॉन्फ़िगरेशन के लिए एक डायरेक्ट्री बनाएं जिसके लिए अलग लेआउट की ज़रूरत है. इसके बाद, layout डायरेक्ट्री के नाम में स्क्रीन कॉन्फ़िगरेशन क्वालिफ़ायर जोड़ें. उदाहरण के लिए, 600 डीपी की उपलब्ध चौड़ाई वाली स्क्रीन के लिए layout-w600dp.
कॉन्फ़िगरेशन क्वालिफ़ायर, आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के लिए उपलब्ध डिसप्ले स्पेस को दिखाते हैं. सिस्टम, आपके ऐप्लिकेशन के लिए लेआउट चुनते समय, सिस्टम के किसी भी डेकोरेशन (जैसे कि नेविगेशन बार) और विंडो कॉन्फ़िगरेशन में हुए बदलावों (जैसे कि मल्टी‑विंडो मोड) को ध्यान में रखता है.
Android Studio में वैकल्पिक लेआउट बनाने के लिए, व्यू की मदद से यूज़र इंटरफ़ेस (यूआई) डेवलप करना में जाकर, अलग-अलग स्क्रीन के लिए ऑप्टिमाइज़ करने के लिए, लेआउट वैरिएंट का इस्तेमाल करना लेख पढ़ें.
सबसे कम चौड़ाई वाला क्वालिफ़ायर
सबसे कम चौड़ाई वाले स्क्रीन साइज़ क्वालिफ़ायर की मदद से, उन डिसप्ले के लिए वैकल्पिक लेआउट उपलब्ध कराए जा सकते हैं जिनकी कम से कम चौड़ाई, डेंसिटी-इंडिपेंडेंट पिक्सल (डीपी) में मापी जाती है.
Android, स्क्रीन के साइज़ को डीपी के तौर पर मेज़र करता है. इससे आपको ऐसे लेआउट बनाने में मदद मिलती है जो खास डिसप्ले डाइमेंशन के लिए डिज़ाइन किए गए हैं. इसके लिए, आपको अलग-अलग पिक्सल डेंसिटी के बारे में चिंता करने की ज़रूरत नहीं होती.
उदाहरण के लिए, main_activity नाम का एक ऐसा लेआउट बनाया जा सकता है जिसे फ़ोन और टैबलेट के लिए ऑप्टिमाइज़ किया गया हो. इसके लिए, अलग-अलग डायरेक्ट्री में फ़ाइल के अलग-अलग वर्शन बनाए जा सकते हैं:
res/layout/main_activity.xml # For phones (smaller than 600dp smallest width) res/layout-sw600dp/main_activity.xml # For 7" tablets (600dp wide or wider)
सबसे छोटा चौड़ाई क्वालिफ़ायर, डिसप्ले की दो साइड में से सबसे छोटी साइड के बारे में बताता है. इससे कोई फ़र्क़ नहीं पड़ता कि डिवाइस किस ओरिएंटेशन में है. इसलिए, यह आपके लेआउट के लिए उपलब्ध डिसप्ले के कुल साइज़ के बारे में बताने का एक तरीका है.
यहां बताया गया है कि सबसे कम चौड़ाई की अन्य वैल्यू, स्क्रीन के सामान्य साइज़ से कैसे मेल खाती हैं:
- 320 डीपी: छोटी फ़ोन स्क्रीन (240x320 एलडीपीआई, 320x480 एमडीपीआई, 480x800 एचडीपीआई वगैरह)
- 480dp: बड़ी फ़ोन स्क्रीन ~5" (480x800 mdpi)
- 600 डीपी: 7" टैबलेट (600x1024 mdpi)
- 720dp: 10" टैबलेट (720x1280 mdpi, 800x1280 mdpi वगैरह)
इस इमेज में, अलग-अलग स्क्रीन डीपी चौड़ाई के हिसाब से, अलग-अलग स्क्रीन साइज़ और ओरिएंटेशन के बारे में ज़्यादा जानकारी दी गई है.
सबसे कम चौड़ाई क्वालिफ़ायर के लिए वैल्यू, डीपी होती हैं. ऐसा इसलिए, क्योंकि सिस्टम के पिक्सल डेंसिटी का हिसाब लगाने के बाद, डिसप्ले के लिए उपलब्ध जगह मायने रखती है. रॉ पिक्सल रिज़ॉल्यूशन मायने नहीं रखता.
सबसे कम चौड़ाई जैसे रिसॉर्स क्वालिफ़ायर का इस्तेमाल करके तय किए गए साइज़, स्क्रीन के असल साइज़ नहीं होते. इसके बजाय, साइज़ से चौड़ाई या ऊंचाई की जानकारी dp यूनिट में मिलती है. यह जानकारी आपके ऐप्लिकेशन की विंडो के लिए उपलब्ध होती है. Android सिस्टम, सिस्टम यूज़र इंटरफ़ेस के लिए स्क्रीन के कुछ हिस्से का इस्तेमाल कर सकता है. जैसे, स्क्रीन के सबसे नीचे मौजूद सिस्टम बार या सबसे ऊपर मौजूद स्टेटस बार. इसलिए, हो सकता है कि स्क्रीन का कुछ हिस्सा आपके लेआउट के लिए उपलब्ध न हो. अगर आपके ऐप्लिकेशन का इस्तेमाल मल्टी-विंडो मोड में किया जाता है, तो ऐप्लिकेशन के पास सिर्फ़ उस विंडो के साइज़ का ऐक्सेस होता है जिसमें ऐप्लिकेशन मौजूद है. विंडो का साइज़ बदलने पर, नए विंडो साइज़ के साथ कॉन्फ़िगरेशन में बदलाव ट्रिगर होता है. इससे सिस्टम, सही लेआउट फ़ाइल चुन पाता है. इसलिए, आपके ऐप्लिकेशन को जितनी जगह की ज़रूरत है उतनी ही जगह के लिए, संसाधन क्वालिफ़ायर के साइज़ तय किए जाने चाहिए. सिस्टम यूज़र इंटरफ़ेस (यूआई) के लिए इस्तेमाल की गई जगह को ध्यान में रखकर, आपके लेआउट के लिए जगह उपलब्ध कराता है.
उपलब्ध चौड़ाई क्वालिफ़ायर
डिसप्ले की सबसे कम चौड़ाई के हिसाब से लेआउट बदलने के बजाय, आपके पास यह तय करने का विकल्प होता है कि लेआउट को कितनी चौड़ाई या लंबाई के हिसाब से बदलना है. उदाहरण के लिए, जब स्क्रीन की चौड़ाई कम से कम 600dp हो, तब आपको दो‑पैन वाला लेआउट इस्तेमाल करना पड़ सकता है. यह इस बात पर निर्भर करता है कि डिवाइस लैंडस्केप या पोर्ट्रेट मोड में है या नहीं. ऐसे मामले में, आपको उपलब्ध चौड़ाई क्वालिफ़ायर का इस्तेमाल इस तरह करना चाहिए:
res/layout/main_activity.xml # For phones (smaller than 600dp available width)
res/layout-w600dp/main_activity.xml # For 7" tablets or any screen with 600dp available width
# (possibly landscape phones)
अगर आपके ऐप्लिकेशन के लिए उपलब्ध ऊंचाई एक समस्या है, तो उपलब्ध ऊंचाई क्वालिफ़ायर का इस्तेमाल किया जा सकता है. उदाहरण के लिए, layout-h600dp कम से कम 600 डीपी की स्क्रीन ऊंचाई वाली स्क्रीन के लिए.
ओरिएंटेशन क्वालिफ़ायर
सिर्फ़ सबसे कम चौड़ाई और उपलब्ध चौड़ाई क्वालिफ़ायर के कॉम्बिनेशन का इस्तेमाल करके, सभी साइज़ के बदलावों को मैनेज किया जा सकता है. हालांकि, जब उपयोगकर्ता पोर्ट्रेट और लैंडस्केप ओरिएंटेशन के बीच स्विच करता है, तब आपको उपयोगकर्ता अनुभव में भी बदलाव करना पड़ सकता है.
इसके लिए, लेआउट डायरेक्ट्री के नामों में port या land क्वालिफ़ायर जोड़े जा सकते हैं. बस यह पक्का करें कि ओरिएंटेशन क्वालिफ़ायर, साइज़ क्वालिफ़ायर के बाद आते हों.
उदाहरण के लिए:
res/layout/main_activity.xml # For phones res/layout-land/main_activity.xml # For phones in landscape res/layout-sw600dp/main_activity.xml # For 7" tablets res/layout-sw600dp-land/main_activity.xml # For 7" tablets in landscape
स्क्रीन कॉन्फ़िगरेशन क्वालिफ़ायर के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन के संसाधनों की खास जानकारी देखें.
विंडो के साइज़ की क्लास
विंडो साइज़ क्लास, व्यूपोर्ट ब्रेकपॉइंट होती हैं. इनकी मदद से, अडैप्टिव लेआउट बनाए जा सकते हैं. ब्रेकपॉइंट से पता चलता है कि आपके ऐप्लिकेशन के लिए, डिसप्ले एरिया छोटा, मीडियम या बड़ा है. चौड़ाई और ऊंचाई अलग-अलग तय की जाती हैं. इसलिए, आपके ऐप्लिकेशन में हमेशा चौड़ाई के लिए विंडो साइज़ क्लास और ऊंचाई के लिए विंडो साइज़ क्लास होती है.
प्रोग्राम के हिसाब से अडैप्टिव लेआउट लागू करने के लिए, यह तरीका अपनाएं:
- विंडो के साइज़ के हिसाब से क्लास ब्रेकपॉइंट के आधार पर लेआउट संसाधन बनाना
- Jetpack WindowManager लाइब्रेरी के
WindowSizeClass#compute()फ़ंक्शन का इस्तेमाल करके, अपने ऐप्लिकेशन की चौड़ाई और लंबाई के हिसाब से विंडो साइज़ क्लास का हिसाब लगाएं - मौजूदा विंडो के साइज़ क्लास के लिए, लेआउट रिसॉर्स को बड़ा करता है
ज़्यादा जानकारी के लिए, विंडो के साइज़ की क्लास देखें.
फ़्रैगमेंट का इस्तेमाल करके मॉड्यूलर यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट
अलग-अलग डिसप्ले साइज़ के लिए ऐप्लिकेशन डिज़ाइन करते समय, फ़्रैगमेंट का इस्तेमाल करके अपने यूज़र इंटरफ़ेस (यूआई) लॉजिक को अलग-अलग कॉम्पोनेंट में निकालें. इससे यह पक्का किया जा सकेगा कि अलग-अलग ऐक्टिविटी में यूज़र इंटरफ़ेस (यूआई) के व्यवहार को ज़रूरत से ज़्यादा डुप्लीकेट न किया जाए. इसके बाद, फ़्रैगमेंट को मिलाकर बड़ी स्क्रीन पर मल्टी-पैन लेआउट बनाए जा सकते हैं. इसके अलावा, छोटी स्क्रीन पर फ़्रैगमेंट को अलग-अलग ऐक्टिविटी में रखा जा सकता है.
उदाहरण के लिए, सूची-जानकारी वाले पैटर्न (ऊपर SlidingPaneLayout देखें) को लागू करने के लिए, एक फ़्रैगमेंट में सूची और दूसरे फ़्रैगमेंट में सूची आइटम की जानकारी शामिल की जा सकती है. बड़ी स्क्रीन पर, फ़्रैगमेंट को एक साथ दिखाया जा सकता है. वहीं, छोटी स्क्रीन पर, उन्हें अलग-अलग दिखाया जा सकता है.
ज़्यादा जानने के लिए, फ़्रैगमेंट की खास जानकारी देखें.
गतिविधि एम्बेड करना
अगर आपके ऐप्लिकेशन में कई ऐक्टिविटी हैं, तो ऐक्टिविटी एम्बेड करने की सुविधा की मदद से, अडैप्टिव यूज़र इंटरफ़ेस (यूआई) आसानी से बनाया जा सकता है.
ऐक्टिविटी एम्बेड करने की सुविधा की मदद से, किसी ऐप्लिकेशन की टास्क विंडो में एक साथ कई ऐक्टिविटी या एक ही ऐक्टिविटी के कई इंस्टेंस दिखाए जा सकते हैं. बड़ी स्क्रीन पर, ऐक्टिविटी को अगल-बगल दिखाया जा सकता है. वहीं, छोटी स्क्रीन पर, उन्हें एक के ऊपर एक करके दिखाया जाता है.
आपके पास यह तय करने का विकल्प होता है कि आपका ऐप्लिकेशन अपनी गतिविधियों को कैसे दिखाएगा. इसके लिए, आपको एक एक्सएमएल कॉन्फ़िगरेशन फ़ाइल बनानी होगी. सिस्टम इस फ़ाइल का इस्तेमाल करके, डिसप्ले के साइज़ के हिसाब से सही प्रज़ेंटेशन तय करता है. इसके अलावा, Jetpack WindowManager API कॉल किए जा सकते हैं.
गतिविधि एम्बेड करने की सुविधा, डिवाइस के ओरिएंटेशन में बदलाव और फ़ोल्ड किए जा सकने वाले डिवाइसों के साथ काम करती है. साथ ही, डिवाइस के घूमने या फ़ोल्ड और अनफ़ोल्ड होने पर, गतिविधियों को स्टैक और अनस्टैक करने की सुविधा भी देती है.
ज़्यादा जानकारी के लिए, गतिविधि एम्बेड करना लेख पढ़ें.
स्क्रीन के साइज़ और आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात)
अपने ऐप्लिकेशन को अलग-अलग स्क्रीन साइज़ और आसपेक्ट रेशियो पर टेस्ट करें. इससे यह पक्का किया जा सकेगा कि आपका यूज़र इंटरफ़ेस (यूआई) सही तरीके से स्केल हो रहा है.
Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन में, कई तरह के आसपेक्ट रेशियो इस्तेमाल किए जा सकते हैं. फ़ोल्ड किए जा सकने वाले डिवाइसों की स्क्रीन अलग-अलग तरह की हो सकती हैं. जैसे, फ़ोल्ड करने पर 21:9 के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) वाली लंबी और पतली स्क्रीन से लेकर, अनफ़ोल्ड करने पर 1:1 के आसपेक्ट रेशियो वाली स्क्वेयर स्क्रीन तक.
ज़्यादा से ज़्यादा डिवाइसों पर ऐप्लिकेशन के काम करने की पुष्टि करने के लिए, इन स्क्रीन आसपेक्ट रेशियो के हिसाब से अपने ऐप्लिकेशन की जांच करें:
अगर आपके पास अलग-अलग साइज़ की स्क्रीन वाले डिवाइसों का ऐक्सेस नहीं है, तो Android Emulator का इस्तेमाल करके, किसी भी साइज़ की स्क्रीन को एम्युलेट किया जा सकता है.
अगर आपको किसी असली डिवाइस पर टेस्ट करना है, लेकिन आपके पास वह डिवाइस नहीं है, तो Firebase टेस्ट लैब का इस्तेमाल करके, Google के डेटा सेंटर में मौजूद डिवाइसों को ऐक्सेस किया जा सकता है.
अन्य संसाधन
- मटीरियल डिज़ाइन — लेआउट के बारे में जानकारी