कई स्क्रीन का समर्थन करने के लिए आवेदन कंकाल


92

जैसा कि हम जानते हैं कि एंड्रॉइड विभिन्न उपकरणों के साथ आता है, जिसमें विभिन्न विशेषताओं, रिज़ॉल्यूशन और स्क्रीन-आकार होते हैं, ताकि एक एप्लिकेशन विकसित करते समय जो कई (छोटी और बड़ी) स्क्रीन का समर्थन करता है, वहाँ आकार और लेआउट का एक बाधा है।

यह स्क्रीन आकार, रिज़ॉल्यूशन और DPI के विभिन्न संयोजनों की ओर जाता है और एंड्रॉइड डिवाइसों के लिए डिज़ाइन और विकास करते समय काफी चुनौती पैदा करता है। जबकि कुछ अन्य निर्माता (गैर एंड्रॉइड) के पास अलग-अलग रिज़ॉल्यूशन और डीपीआई हैं, वे एक ही स्क्रीन आकार साझा करते हैं और रिज़ॉल्यूशन समान पहलू अनुपात का पालन करते हैं। इसलिए, गैर Android उपकरणों को फिट करने के लिए एक छवि बनाई जा सकती है।

मेरा सवाल यह है कि क्या कोई उचित प्रवाह या वास्तुकला है जिसे किसी आवश्यकता को पूरा करने के लिए पालन करना चाहिए?

यहां छवि विवरण दर्ज करें

याद रखें कि हमारे पास अलग-अलग आकार और रिज़ॉल्यूशन के टैबलेट हैं।

मुझे पता है कि Android डेवलपर में यह जानकारी है, लेकिन मेरा विचार कार्यान्वयन से है।

मेरे ज्ञान से जो मुझे समझ में आया वह यह है कि एंड्रॉइड ग्राफिक्स को डिजाइन करने के लिए भी प्रोग्रामर को डिजाइनिंग अवधारणा को जानना चाहिए।


13
क्या आप सुनिश्चित हैं कि यह प्रश्न रचनात्मक नहीं है?
मोहम्मद अजहरुद्दीन शेख

6
मुझे लगता है कि यह बहुत रचनात्मक है। डाउन वोट के कारणों को जानना चाहेंगे।
आलसी निंजा

11
@MKJParekh ले MicroMax Funbook gsmarena.com/micromax_funbook_p300-4701.php 7", 480X800, Ldpi (133 dpi) क्या आप मुझे बता सकते हैं कि किस श्रेणी (ड्राबल-लार्ज या Ldpi या Android v3.0 sw-480) में गिरावट आएगी?
मोहम्मद अजहरुद्दीन शेख

1
@LazyNinja नीचे वोट का कारण lunatics और पागल लोग हैं। जो सिर्फ सोचते हैं कि वे केवल रचनात्मक प्रश्न पूछ सकते हैं: पी
AZ_

1
@AZ_ :) हमने इस रेस स्ट्रक्चर का उपयोग रेस फोल्डर में ड्रॉवेबल ड्रॉबल-एचडीपीआई ड्रिबल-एचडीपीआई-वी 11 ड्रॉबल-एचडीपीआई-वी 9 ड्रॉबल-लार्ज ड्रिबल-लार्ज-एचडीपीआई ड्रॉबल-एचडीपीडी ड्रॉबल-एचडीपीडी ड्रॉबल-एमडीपीआई-वी 11 डीएबल-छोटे ड्रॉबल- xhdpi drawable-xhdpi-v11 drawable-xxhdpi drawable-xxhdpi-v11 लेआउट लेआउट-छोटा लेआउट-sw530dp लेआउट-sw720dp लेआउट-xlarge मान मान-sw530dp मान-sw720dp मान-v14 मान-xlarge और xml से वेलफ़ॉर्म किए गए अच्छे आयाम । FYKI हमारे आवेदन 5k से अधिक प्रकार के उपकरणों का समर्थन करता है।
MKJParekh

जवाबों:


147

अंत में एक संरचना बनाई गई जो कई स्क्रीन के लिए लेआउट और आइकन को संभालती है।

Android सामान्यकरण उपकरण दो मापदंडों के आधार पर श्रेणियों में प्रदर्शित होता है:

  • स्क्रीन का आकार, प्रदर्शन का भौतिक आकार (तिरछे मापा गया)
  • स्क्रीन घनत्व, डिस्प्ले का भौतिक पिक्सेल घनत्व (पिक्सेल-प्रति-इंच या पीपीआई में) `

स्क्रीन आकार और घनत्व को जल्दी से निर्धारित करने के लिए, कृपया Android के लिए " व्हाट्स माय साइज़ " ऐप इंस्टॉल करें।

स्क्रीन का आकार

एंड्रॉइड चार सामान्यीकृत स्क्रीन आकारों को परिभाषित करता है:


 Qualifier           Size

 small               ~3 inches (approx) 
 normal              ~4 inches (approx) 
 large               Exceeds 4 inches    
 xlarge              Exceeds 7 inches  
  • अधिकांश फोन छोटे या सामान्य (लगभग 3 से 4 इंच तिरछे) के रूप में वर्गीकृत किए जाते हैं। लेकिन अब, बड़ी स्क्रीन वाले कई फोन हैं जैसे गैलेक्सी एस 4, एचटीसी वन, एक्सपीरिया जेड
  • सैमसंग गैलेक्सी टैब जैसी छोटी गोली को बड़े (4 इंच से बड़े) के रूप में वर्गीकृत किया गया है
  • बड़े उपकरणों के लिए अतिरिक्त बड़े लागू होते हैं, उदाहरण के लिए बड़ी गोलियाँ

एंड्रॉइड चार सामान्यीकृत स्क्रीन घनत्व को परिभाषित करता है:


 Qualifier         Description         Nominal value

 ldpi              low density          120 ppi
 mdpi              medium density       160 ppi
 hdpi              high density         240 ppi
 xhdpi             extra high density   320 ppi

आमतौर पर:

  • स्क्रीन आकार का आपके ऐप लेआउट पर सबसे अधिक प्रभाव पड़ता है
  • स्क्रीन घनत्व का आपकी छवि और ग्राफिक संसाधनों पर सबसे अधिक प्रभाव पड़ता है

यह यहां डिवाइस स्क्रीन के प्रतिशत अंतर को सूचीबद्ध किया गया है

  • Ldpi- 75%
  • Mdpi- 100% (Android डेवलपर साइट के अनुसार आधार)
  • Hdpi- 150%
  • XHdpi- 200%

यहां छवि विवरण दर्ज करें

लेकिन जैसा कि हम जानते हैं कि अब अधिकांश डिवाइस 480X800 के साथ आ रहे हैं, इसलिए मैं इसे आधारित डिवाइस मान रहा हूं, इसलिए हमारी नई गणना इसे पसंद करेगी

  • Ldpi- 50%
  • Mdpi- 66.67%
  • Hdpi- 100%
  • XHdpi- 133.33%

जिसका अर्थ है कि पहला आइकन और डिज़ाइन 480X800 के लिए और फिर बाकी लोगों (यानी Ldpi, Mdpi, Xhdpi) के लिए बनाया जाएगा।

ऐसी छवियां हैं जो सभी लेआउट के लिए सामान्य हैं और उन्हें रंग और आकार (कोई जटिल आकार, कोई वक्र) में समान नहीं होना चाहिए, इसलिए इस तरह की छवि के लिए हम बना रहे हैं 9patchजिसे "ड्रॉबल (नो-प्रत्यय)" फ़ोल्डर में रखा जाना चाहिए। 9Patch छवि बनाने के लिए आप या तो DrawNinePatch या BetterNinePatch का उपयोग कर सकते हैं

अब बस एंड्रॉइड के मानकों के आधार पर अपनी छवियों का नाम बदलें और अपने आवेदन को पूरा करें hdpiऔर फिर बस लेंdrawable-hdpi फ़ोल्डर लें और Adode Photoshop खोलें (अनुशंसित) कई आकार की कार्रवाई बनाएं (बस प्रतिशत अनुपात के अनुसार आकार बदलें) एक बार सभी आकार के लिए बनाई गई कार्रवाई करें। बैच स्वचालित करें और स्रोत दें (drawable-hdpi) और गंतव्य (drawable-ldpi, drawable-mdpi, drawable-xdpi)।

कारण मैं आपको फ़ोटोशॉप का उपयोग करने के लिए जोर देता हूं क्योंकि यह स्वचालित रूप से आपकी छवि को क्रियाओं के साथ आकार देगा और एक और प्लस बिंदु यह है कि आपको फ़ाइल का नाम बदलने की आवश्यकता नहीं है (यह मूल नाम के समान नाम देगा)।

एक बार जब आप सभी छवियों के निर्माण के साथ पूरा हो जाते हैं, तो अपनी परियोजना को ताज़ा करें और उसका परीक्षण करें।

कभी-कभी ऐसी संभावना हो सकती है कि लेआउट जो स्क्रीन (xhdpi, hdpi, mdpi) का समर्थन करता है, वह छोटे परदे (ldpi) में कट जाए, इसलिए इसे संभालने के लिए इसके लिए अलग लेआउट फ़ोल्डर (लेआउट-छोटा) बनाएं और ScrollView(अधिकतर) जोड़ें । बस।

टैबलेट टैबलेट को दो आकार में वर्गीकृत किया गया है।

  1. 7 "(1024X (600-48 (नेविगेशन बार)) = 1024X552 (ड्रॉबल-लार्ज)
  2. 10 "(1280X (800-48 (नेविगेशन बार))) = 1280X752 (ड्रा करने योग्य- xlarge)

इसमें हमें दोनों स्क्रीन के लिए छवि बनाने की जरूरत है और बस उन्हें तदनुसार रखा जाना चाहिए

तो सभी में हम कई स्क्रीन का समर्थन करने के लिए हमारे आवेदन में इस फ़ोल्डर होगा।

drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge

के साथ अधिक योग्यता संयोजन होगा Screen size and Screen density

drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi

अधिक योग्यता के साथ Screen density and Version

drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11

और अधिक योग्यता के साथ Screen size and Version

drawable-large-v11
drawable-xlarge-v11

और अधिक योग्यता के साथ Smallest width concept(SW)

 drawable-sw???dp

Android V3.0 हनीकॉम्ब में और अधिक उन्होंने नई अवधारणा पेश की SW(smallest width)जिसमें डिवाइस को स्क्रीन की चौड़ाई में वर्गीकृत किया गया है, इसलिए यदि हम नाम का एक फ़ोल्डर बना रहे हैं drawable-sw360dpतो 720dp (या तो चौड़ाई या ऊंचाई) वाला डिवाइस इस फ़ोल्डर से संसाधन का उपयोग करेगा।

उदाहरण के लिए Samsung Galaxy S3 dp को drawable-sw- dp में प्रत्यय खोजने के लिए ? DP DP
संदर्भ के साथ , यदि आप अपने लेआउट का समर्थन करना चाहते हैं या S3 के लिए ड्रा करने योग्य हैं, तो गणना कहती है

px = डिवाइस की चौड़ाई = 720
डीपीआई = डिवाइस का घनत्व = 320

सूत्र दिया गया

    px = dp * (dpi / 160)

इंटरचेंजिंग फॉर्मूला क्योंकि हमारे पास px का मूल्य है

    dp = px / (dpi / 160)

अब मूल्य डाल,

     dp= 720 / (320/160);
     dp=360. 

इसलिए drawable-sw360dp यह काम करेगा

GsmArena Sameway से आपको डिवाइस कॉन्फिगरेशन मिलता है। आप डिवाइस के एंड्रॉइड एपीआई वर्जन के अनुसार फोल्डर भी बना सकते हैं।

अतिरिक्त सुझाव:

  • रिश्तेदार लेआउट, डीपी, एसपी, और मिमी का उपयोग करें

    dp इकाइयाँ - डिवाइस स्वतंत्र पिक्सेल एक 160 पीपीआई स्क्रीन पर 1 भौतिक पिक्सेल के लिए सामान्यीकृत अर्थात मध्यम घनत्व। रनटाइम पर स्केल किया गया। स्क्रीन तत्व आयामों के लिए उपयोग करें

    सपा इकाइयाँ - स्केल किए गए पिक्सेल, डीपी इकाइयों के आधार पर फ़्लोटिंग पॉइंट वैल्यूज़ के रूप में निर्दिष्ट होते हैं, लेकिन इसके अतिरिक्त उपयोगकर्ता के फॉन्ट-साइज़ वरीयता सेटिंग के लिए स्केल किए जाते हैं। रनटाइम पर स्केल किया गया। फ़ॉन्ट आकार के लिए उपयोग करें

    आपको लेआउट के लिए हमेशा RelativeLayout का उपयोग करना चाहिए; AbsoluteLayout पदावनत है और इसका उपयोग नहीं किया जाना चाहिए।

  • उचित छवि प्रारूपों का उपयोग करें - PNG बनाम JPEG

    Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.

    हालांकि, पीएनजी और जेपीईजी समकक्ष नहीं हैं। उनके पास अलग-अलग गुणवत्ता वाले ट्रेड ऑफ हैं, और पीएनजी हमेशा सबसे अच्छा नहीं होता है:

    JPEG , PNG पर 50% फ़ाइल-आकार की कटौती की पेशकश कर सकता है, जो कि महत्वपूर्ण है यदि आपका ऐप छवि-गहन है

    एक उच्च गुणवत्ता वाली "हानिपूर्ण" जेपीईजी एक ही फ़ाइल आकार के लिए अत्यधिक संकुचित "दोषरहित" पीएनजी से बेहतर दिख सकती है

  • डिबगिंग के लिए अपनी छवियों और ग्राफिक्स में लेबल जोड़ें

  • समर्थन-स्क्रीन तत्व का उपयोग करें

  • वास्तविक डिवाइस मान के साथ अपने एमुलेटर को कॉन्फ़िगर करें

    पारंपरिक रूप से, डेस्कटॉप सिस्टम 72ppi (Mac), या 96ppi (विंडोज, लिनक्स) पर प्रदर्शित होते हैं। मोबाइल की तुलना में, डेस्कटॉप डिस्प्ले हमेशा कम घनत्व वाले होते हैं।

    हमेशा वास्तविक डिवाइस मानों की नकल करने के लिए अपने एंड्रॉइड एमुलेटर को कॉन्फ़िगर करें, और हमेशा उन्हें डिवाइस घनत्व का अनुकरण करने के लिए सेट करें।

    ग्रहण में, कई एमुलेटर बनाना आसान है (ग्रहण मेनू बार से, विंडो> AVD प्रबंधक> नया ) का चयन वास्तविक उपकरणों के लिए मानों के साथ कॉन्फ़िगर किया गया है:

    असली डिवाइस के लिए एमुलेटर का नाम बताएं, जो रिज़ॉल्यूशन रिज़ॉल्यूशन निर्दिष्ट कर रहा है, बिल्ट-इन जेनरिक आकारों का उपयोग न करें वास्तविक डिवाइस से मेल खाने के लिए डिवाइस घनत्व सेट करें (हार्डवेयर फलक में एब्सट्रैक्टेड एलसीडी प्रॉपर्टी को असली घनत्व, हमेशा एक पूर्णांक मान)

    जब आप डिवाइस लॉन्च करते हैं, तो हमेशा वास्तविक आकार में स्केल डिस्प्ले का चयन करें, और इंच में वास्तविक स्क्रीन आयाम में टाइप करें।

    यदि आप डिवाइस घनत्व सेट नहीं करते हैं, तो एमुलेटर कम घनत्व में चूक करता है, और हमेशा ldpi- विशिष्ट संसाधनों को लोड करता है। रिज़ॉल्यूशन (पिक्सेल आयाम) सही होंगे, लेकिन आपके घनत्व-निर्भर छवि संसाधन इरादा के अनुसार प्रदर्शित नहीं होंगे।

    बेशक, आप जो कुछ भी नहीं करते हैं वह कम घनत्व वाले डेस्कटॉप डिस्प्ले पर उच्च घनत्व छवि गुणवत्ता को पुन: उत्पन्न करेगा।

1 अक्टूबर 2012 को समाप्त होने वाली 7-दिवसीय अवधि के दौरान यहां डेटा एकत्र किया गया है। Android प्लेटफ़ॉर्म संस्करण के बारे में नवीनतम आंकड़ों को देखने के लिए, यहां जाएं

स्क्रीन साइज के आधार पर

यहां छवि विवरण दर्ज करें

स्क्रीन घनत्व के आधार पर

यहां छवि विवरण दर्ज करें


2
सैमसंग गैलेक्सी टैब 7 के लिए "हमें ड्रॉएबल-लार्ज-
एचडीपीआई के

@rajpara में बहुत संयोजन और क्रमचय हैं, हम ऐसे सभी मामलों को बाद में शामिल करेंगे।
मोहम्मद अजहरुद्दीन शेख

1
देखिए @AlexBonel, हां मैं आपसे सहमत हूं, लेकिन मेरा मुख्य उद्देश्य यह जानना है कि मल्टी-स्क्रीन सपोर्ट आने पर चीजें कैसे हो सकती हैं। कोई इस प्रवाह / अवधारणा को संशोधित / हेरफेर कर सकता है क्योंकि ऊपर प्रारंभिक समस्या को स्पष्ट करने के लिए है। इसके अलावा मैं भी आवेदन डिजाइन के आधार पर संशोधन करते हैं। आपकी पोस्ट ने मुझे यह समझा दिया कि आप अवधारणा को समझ गए हैं। आशा है आपको मेरी बात अच्छी लगी होगी
मोहम्मद अजहरुद्दीन शेख

1
अच्छा उत्तर। बहुत सारे और इतने दिनों की खोज के बाद यह अपवाद क्यों हो रहा है, मुझे यह पोस्ट बेहतरीन उदाहरण और स्पष्टीकरण के साथ सबसे अच्छा जवाब मिला। उदाहरण के लिए हेलो वैल्यू 7 इंच टैबलेट पर विचार करें। पीपीआई = 133। संकल्प = 480 * 800। आकार = 7 'इंच। यदि हम mdpi को आधार मानते हैं, तो इसे मान-sw480 में परिभाषित आयाम लेना चाहिए, लेकिन यह मान-sw600 से आयाम ले रहा है। मुझे नहीं मिला कि ऐसा क्यों हो रहा है। वास्तव में अपनी पोस्ट के लिए बहुत बहुत धन्यवाद। समय की खोई बचत करें और भ्रम को दूर करें। मुझे लगता है कि यह एंड्रॉइड की आधिकारिक साइट पर होना चाहिए। आपके प्रयास की सराहना करते हैं।
स्मेट

1
मुझे लगता है कि यह सबसे अच्छा जवाब है जो मैंने कभी देखा था। मैं लंबे समय से ऐसे जवाब की तलाश में हूं। और आखिरकार मुझे मिल गया। इस उत्तर को और अधिक समझने के लिए योगदान देने के लिए सभी का धन्यवाद।
हिरेन दीक्षित

1

डिजाइनरों को आधार डिजाइन बनाना चाहिए

base size of mdpi devices * density conversion factor of highest supported density bucket
size.Base स्क्रीन का आकार 320 X 480 px है और घनत्व बाल्टियाँ इस प्रकार हैं:

  • ldpi: 0.75
  • mdpi: 1.0 (आधार घनत्व)
  • एचडीपीआई: १.५
  • xhdpi: 2.0
  • xxhdpi: 3.0
  • xxxhdpi: 4.0

और एंड्रॉइड डिवाइस पर अतिरिक्त उपलब्ध स्थान से निपटने के लिए दोनों दिशाओं (क्षैतिज और लंबवत) में स्ट्रेचेबल घटकों का उपयोग करना चाहिए। विस्तृत जानकारी यहाँ उपलब्ध है:

http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.