2010-03-28 17 views
46

परियोजना पदानुक्रम में res फ़ोल्डर में तीन ड्रॉइंग फ़ोल्डर्स के बीच क्या अंतर है? अगर मेरे पास एक फ़ोल्डर में रखने के लिए एक छवि है, तो मैं इसे किस फ़ोल्डर में डालूं?res फ़ोल्डर में Drawable फ़ोल्डर्स?

उत्तर

75

मैं अनुमान लगा रहा हूं कि "तीन ड्रॉइंग फ़ोल्डर्स" drawable-ldpi, drawable-mdpi, और drawable-hdpi हैं। उस स्थिति में, यदि आप उन सभी फ़ोल्डरों के साथ चिपके रहते हैं, तो आपको संकेतित स्क्रीन घनत्व से मेल खाने के लिए आकार में प्रत्येक छवि को एक साथ रखना होगा। इस पर online documentation के साथ-साथ यह blog post पर चर्चा की गई है। आप स्क्रीन घनत्व here पर आधारित विभिन्न ड्रॉबल संसाधनों के उपयोग को दिखाते हुए नमूना परियोजनाओं का एक सेट पा सकते हैं।

यदि आप अभी एंड्रॉइड डेवलपमेंट में शुरुआत कर रहे हैं, तो आप उन तीनों निर्देशिकाओं से छुटकारा पा सकते हैं और एक ही drawable निर्देशिका बना सकते हैं, जिससे आपकी छवि वहां हो सकती है। आखिरकार, एक गुणवत्ता अनुप्रयोग के लिए, आप अलग-अलग स्क्रीन घनत्व वाले विभिन्न उपकरणों/अनुकरणकों पर अपनी छवियों का परीक्षण करना चाहेंगे, और संभवतया आपके ऐप के स्वरूप को बेहतर बनाने के लिए प्रत्येक घनत्व के लिए अलग-अलग छवियां होंगी।

+20

आपको प्रत्येक में एक छवि रखने की आवश्यकता नहीं है; मंच उस छवि को उठाएगा जो डिवाइस के घनत्व से सबसे अच्छा मेल खाता है, और यह मिलान करने के लिए सटीक पैमाने पर नहीं है। 1.6 या बाद में लक्षित अनुप्रयोगों के लिए, यह दृढ़ता से अनुशंसा की जाती है कि आप अपनी बिटमैप्स को उस निर्देशिका में डाल दें जो इसकी डिज़ाइन घनत्व से मेल खाता हो (यह घनत्व विनिर्देश के बिना बिटमैप रखने का कोई मतलब नहीं है); बेशक गैर-बिटमैप्स जैसे विभिन्न एक्सएमएल ड्रॉबल्स में आमतौर पर ऐसी कोई आवश्यकता नहीं होती है और सादा निर्देशिका में होना चाहिए। यह भी देखें: अगर आप/drawable फ़ोल्डर में स्केलेबल बिटमैप्स डाल http://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources – hackbod

+4

एक प्रकार का वृक्ष की शिकायत करेंगे। वर्तमान में यह एक्सएमएल-आधारित ड्रॉबल्स जैसे घनत्व रहित वस्तुओं के लिए है। –

5

यहां multi device options का संदर्भ है।

@CommonsWare के कहे अनुसार, तुम नहीं जरूरत कुछ भी लेकिन रेस/लेआउट/या drawable में संसाधनों डाल करने के लिए करते हैं/लेकिन अगर आप चाहते हैं अलग स्क्रीन/घनत्व के साथ कई उपकरणों पर एक बेहतर अनुभव के लिए अपने कार्यक्रम/भाषाएं आप विचार कर सकते हैं कि आपके पास वह विकल्प है।

1

छवियों के लिए विशिष्ट नहीं है, हालांकि यह दिलचस्प है कि एंड्रॉइड संसाधनों को कैसे संभालता है। यह उन्हें एक लोड ऑर्डर देता है, जहां अधिक विशिष्ट मतलब यह कम विशिष्ट पर उठाया जाएगा।

उदाहरण के लिए, आपके मूल्य फ़ोल्डर में strings.xml में आपके तीन स्ट्रिंग मान हैं। आपके पास मूल्य-एन नामक फ़ोल्डर में एक विशिष्ट स्ट्रिंग भी है। जब एंड्रॉइड आपके ऐप और आपके लोकेल मैचों को खोलता है, तो यह वैल्यू-एन से मूल्य फ़ोल्डर और तीसरे, अधिक विशिष्ट स्ट्रिंग से दो डिफ़ॉल्ट लोड करेगा। यदि आपका लोकेल आरयू है, तो यह केवल डिफ़ॉल्ट का उपयोग करेगा क्योंकि आपके पास कोई मान-आरयू फ़ोल्डर नहीं है।

छवियों के लिए भी यही सच है। यदि एंड्रॉइड आपके विशिष्ट स्क्रीन संस्करण के लिए छवियां नहीं ढूंढ पा रहा है, तो यह ड्रॉबल फ़ोल्डर से डिफ़ॉल्ट का उपयोग करेगा।/जैसे मूल्यों/drawable और विशिष्ट मान/विशिष्ट फ़ोल्डर में चित्र अपने सामान्य फ़ोल्डर में चित्र

मेरी राय में यह अच्छी आदत है डिफ़ॉल्ट मान होना। इस तरह वर्तमान और भविष्य दोनों उपकरणों में कम से कम आपकी सामग्री को प्रदर्शित करने का एक तरीका होगा जब तक आप विशिष्ट संस्करण प्रदान नहीं कर सकते।

संबंधित मुद्दे