2013-01-01 10 views
5

हाल ही में मैं 720x ऊंचाई के साथ 800 ऊंचाई एबीडी एस 3 के साथ 1024x600, 480x800 के साथ गैलेक्सी 10.1, 7 इंच के लिए एक ऐप विकसित करता हूं। वे सभी इन संकल्पों पर पूरी तरह से चल रहे हैं। लेकिन जब हम नोट 2 और गैलेक्सी 7 प्लस और अन्य के बारे में बात करते हैं तो हमें कई मुद्दे मिलते हैं। ये है कि इन उपकरणों पर लेआउट सही ढंग से नहीं देखे जा रहे हैं। उस पर I लेआउट में किसी समस्या का सामना करना पड़ रहा है, मैं लेआउट्स-सामान्य-xhdpi-1280x800 के रूप में नोट के लिए लेआउट फ़ोल्डर का उपयोग करता हूं और S3 लेआउट-सामान्य-xhdpi-1280x720 के लिए और सभी लेआउट एक फ़ोल्डर में डालता हूं जो इन सभी लेआउट का समर्थन करने वाला एक एपीके बनाता है।मोबाइल के विभिन्न मॉडलों पर लेआउट

लेकिन जब ग्राहक एपीके डाउनलोड करते हैं तो वे एक समस्या से निपटते हैं, जो गैलेक्सी नोट लेआउट-सामान्य-एक्सएचपीआई -1280x720 लेआउट चुन रहा था और यह सही था लेकिन एस 3 और गैलेक्सी नोट 2 में अलग घनत्व था।

क्योंकि है कि समस्या का मैं समझ नहीं S3 के लिए लेआउट फ़ोल्डर घोषित करने और नोट 2. वहाँ किसी भी तरह से है कि मैं केवल चार फ़ोल्डरों

लेआउट Xlarge

लेआउट xhdpi डिफ़ॉल्ट का उपयोग के साथ है करने के लिए कैसे सामान्य

लेआउट mdpi सामान्य

और समर्थन करता है, साथ

लेआउट hdpi एस 3, नोट 1, नोट 2, 7 इंच प्लस और अन्य जैसी सभी स्क्रीन के लिए सभी लेआउट। जब मैं अपनी परियोजना शुरू करने की कोशिश करता हूं तो मैंने हमेशा बड़े प्रसिद्ध खेलों के बारे में सोचा जैसे कि इनमें से एक "मंदिर रन" है जो सभी मोबाइल और टैब पर चलता है।

लेआउट फ़ोल्डर का समूह बनाना मेरे ऐप को भारी बनाता है जैसे यह 80 एमबी सीमा पार करता है और Google बाजार केवल 50 एमबी से कम ऐप्स स्वीकार करता है।

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

सहायता की संख्या की सराहना की जाएगी और मुझे जवाब और सुझाव चाहिए क्योंकि इन समस्याओं का सामना डेवलपर्स की संख्या से किया जाता है जो नए और अन्य भी हैं।

+0

+1। –

उत्तर

2

मुझे भी अपने आवेदन में ऐसी समस्या का सामना करना पड़ रहा है। लेकिन मुझे इसके लिए एक अच्छा समाधान मिला। मेरे पास tablet के लिए केवल एक लेआउट है और निर्देशिका नाम layout-sw600dp है। अब, जब भाग ऊंचाई और चौड़ाई की समस्याओं पर आया, तो मैंने कई अलग-अलग values निर्देशिका बनाई है जिसमें मैं dimensions और font size और अन्य स्टब्स रखता हूं। तो टैबलेट स्क्रीन के layout में कोई constant मान नहीं होगा।

androd:layout_width:"60dp" // i drop this scenario 

androd:layout_width:"@dimen/tab_width" // i used this scenario 

और अपने values निर्देशिका नाम होगा

values-xlarge 
values-large 

सभी मूल्यों की तरह अपने मूल्यों निर्देशिका से लाना होगा। यह अलग-अलग लेआउट नहीं बनाएगा, लेकिन एक लेआउट कई बार इस्तेमाल किया जा सकता है।

संपादित करें:

बाद Developer.android साइट के शब्द हैं। विन्यास उदाहरण

आप विभिन्न प्रकार के उपकरणों के लिए अपने डिजाइन के कुछ लक्षित करने में सहायता करने के लिए, यहाँ ठेठ स्क्रीन चौड़ाई के लिए कुछ नंबर हैं:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
480dp: a tweener tablet like the Streak (480x800 mdpi). 
600dp: a 7” tablet (600x1024 mdpi). 
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc). 

तालिका 2 से आकार क्वालिफायर का उपयोग करना, आपके आवेदन बीच स्विच कर सकते चौड़ाई और/या ऊंचाई के लिए इच्छित किसी भी संख्या का उपयोग करके हैंडसेट और टैबलेट के लिए आपके अलग-अलग लेआउट संसाधन। उदाहरण के लिए, यदि 600dp छोटे उपलब्ध चौड़ाई अपने टेबलेट लेआउट द्वारा समर्थित है, तो आप इन दो सेट लेआउट के प्रदान कर सकते हैं:

रेस/लेआउट/main_activity.xml # हैंडसेट के लिए
रेस/लेआउट-sw600dp/main_activity.xml # गोलियाँ

===

इस में के लिए, आप देख सकते हैं के लिए 1280 * 720 लेआउट layout-normal-xlarge बनाने आप इस बात मतभेद तय करने के लिए देता है का उपयोग करना चाहिए की तो बजाय layout-sw720dp किया जा रहा है कि,। layout-large-mdpi और layout-large-ldpi का उपयोग करके अलग-अलग पहचानने के बजाय, क्या आप इसकी smallest width से पहचान नहीं सकते हैं? क्योंकि, एंड्रॉइड विभिन्न छवियों के लिए drawables निर्देशिका प्रदान करता है, केवल एक चीज इसका संकल्प है। और आपके पास समाधान से ऊपर है। ग्रेट प्रश्न के लिए

+1

लेआउट-sw600dp ऊपर 3 का समर्थन करता है और मैं अपने ऐप को 2.2 से ऊपर – User42590

+0

नंबर पर विकसित कर रहा हूं, यह सच नहीं है। मैं 2.3 में आवेदन विकसित कर रहा हूं। लेकिन सभी टैबलेट संस्करण API 3 से ऊपर हैं। इसलिए वे 'लेआउट-sw600dp' को समझ सकते हैं। यदि आपने अभी तक कोशिश नहीं की है, तो इसे आजमाएं। आप परिणाम प्राप्त करेंगे। –

+1

हाँ मैं इसे आज़माता हूं लेकिन मुझे केवल एक लेआउट फ़ोल्डर चाहिए और टैब और मोबाइल सहित कई स्क्रीनें हैं इसलिए मुझे उनके लिए आयामों की संख्या घोषित करनी है। इसलिए – User42590

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