2012-08-01 12 views
8

काम नहीं कर रहा पहचानकर्ता वर्तमान में मैं निम्नलिखित संसाधन फ़ोल्डरों:
1. लेआउट-sw600dp
2. लेआउट-sw600dp-NotLongएंड्रॉयड संसाधन NotLong/लंबे

विचार है हम उपकरणों के 3 प्रकार हैं कि और उपकरणों को तदनुसार सही फ़ोल्डर से संसाधनों का उपयोग करना चाहिए। डिवाइस हैं:
1. सैमसंग गैलेक्सी टैब 10.1, 1280 एक्स 800 एमडीपीआई। 16/10
2. एसस ट्रांसफार्मर टीएफटी 101, 1280 एक्स 800 एमडीपीआई। 16/10।
3. एक सामान्य टैबलेट, 800 एक्स 600 एलडीपीआई। 4/3।

समस्या यह है कि सभी 3 डिवाइस लेआउट-sw600dp-notlong से संसाधनों का उपयोग करते हैं। मेरी समझ के लिए 4/3 को -notlong डिवाइस के रूप में वर्गीकृत किया गया है।

क्या मेरे पहचानकर्ता उपयोग में कुछ गड़बड़ है? या पहचानकर्ता के लिए एक बग की सूचना दी गई है?

अग्रिम धन्यवाद।

उत्तर

6

'नोटलॉन्ग' पहचानकर्ता उन डिवाइसों के लिए है जो आधार रेखा उपकरणों के पहलू अनुपात में समान हैं (http://developer.android.com/guide/practices/screens_support.html देखें)। जबकि दस्तावेज़ बेसलाइन डिवाइस पर दुर्लभ हैं, एंड्रॉइड डिवाइस 1.5 ~ 1.6 के सामान्य संकल्प। तो आप जो देख रहे हैं वह सही है।

जबकि बेसलाइन अनुपात से अधिक लंबे समय तक डिवाइस के लिए 'लंबा' पहचानकर्ता है, ऐसा लगता है कि आप छोटे (उदा। 800x600) उपकरणों के लिए संसाधनों को मजबूर नहीं कर सकते हैं। स्रोत कोड के अनुसार

+0

संक्षिप्त प्रश्न। आपके स्पष्टीकरण के आधार पर, 1280 एक्स 800 रिज़ॉल्यूशन संसाधनों का उपयोग -लॉन्ग फ़ोल्डर में नहीं करना चाहिए और नॉटलॉन्ग? – Maziz

+0

1280x800 का अनुपात 1.6 है। मुझे लगता है कि यह बेसलाइन के लिए काफी करीब है (800/480 = 1.6, 480/320 = 1.5) कि यह 'नोटलांग' संसाधनों का उपयोग कर रहा है। तो नहीं, यह 'लंबे' संसाधनों का उपयोग नहीं करेगा। – ebernie

+2

यह एसडीके चूक एक शर्म की बात है:/ – nobre

0

आपने इस दस्तावेज़ को पढ़ा है? http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts

+0

मैंने किया, लिंक के लिए धन्यवाद। दरअसल आप छोटी चौड़ाई निर्दिष्ट कर सकते हैं, लेकिन यह उस एप्लिकेशन की चौड़ाई नहीं है जिसे वह अनुकूलित करने की कोशिश कर रहा है लेकिन डिवाइस का पहलू अनुपात। – Maziz

18

। (ढांचा/आधार/कोर/जावा/एंड्रॉयड/सामग्री/res/Configuration.java)

 // Is this a long screen? 
     if (((longSizeDp*3)/5) >= (shortSizeDp-1)) { 
      // Anything wider than WVGA (5:3) is considering to be long. 
      screenLayoutLong = true; 
     } else { 
      screenLayoutLong = false; 
     } 

तो अगर पहलू अनुपात 3 से अधिक व्यापक है: 5 (या 1.667), यह रूप में लंबे समय के लिए स्क्रीन माना जाएगा।

+1

यह 1280x800 'लंबा नहीं' बनाता है ... मैं नेक्सस 9 और 10 को अलग करने के लिए इस मान का उपयोग करने पर विचार कर रहा था, लेकिन यह काम नहीं करेगा ... –

+0

ओपन सोर्स के लिए प्यार एंड्रॉइड <3 – IlyaEremin