2012-12-12 18 views
13

मैंने एक विजेट लिखा है जिसे 4x2 होमस्क्रीन ब्लॉक माना जाता है। यह minheight और minwidth है, वर्तमान "अनुप्रयोग विजेट डिजाइन दिशानिर्देश" पेज हैंविजेट गलत ग्रिड आकार

android:minWidth="250dp" 
android:minHeight="110dp" 

के अनुसार के साथ और सिस्टम संस्करण आइस क्रीम सैंडविच

नीचे है अगर मेरी Nexus पर एक गद्दी dimens.xml से लागू किया जाता है 4 (xhdpi, जेलीबीन 4.2.1), यह विजेट 4x2 है। एक एमुलेटर (एचडीपीआई, जिंजरब्रेड 2.3.3) पर, यह विजेट 4x2 है। हालांकि मेरे नेक्सस 7 पर (एचडीपीआई, जेलीबीन 4.2.1), विजेट 3x2 है। मैं अपने जीवन के लिए यह नहीं समझ सकता कि इसे क्यों ठीक किया जाए या कैसे। कोई विचार?

उत्तर

10

लार्स वोगेल this Home Screen Widget tutorial में लिखते हैं कि:

एक गणना के नियम के रूप में आप फार्मूले के साथ विजेट के आकार को परिभाषित करना चाहिए: (() * 74 कॉलम/पंक्तियों की संख्या) - 2. ये उपकरण हैं स्वतंत्र पिक्सल और -2 गोल मुद्दों से बचने के लिए प्रयोग किया जाता है।

संपादित करें: स्पष्ट रूप से वोगल इसे old Widget API documentation (संदर्भ देखने के लिए पिछले पृष्ठ को नीचे स्क्रॉल करें) से मिला है।

इस माप के आधार पर, एक 4 कोशिकाओं चौड़ाई और 2 कोशिकाओं ऊंचाई के लिए, का उपयोग 294 x 146 डुबकी:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="294dip" android:minHeight="146dip" 
    android:updatePeriodMillis="0" android:initialLayout="@layout/some_layout" /> 
+0

जैसा कि आपने कहा, 294x146 पुराना प्रलेखन के आधार पर किया जाएगा। नए दस्तावेज़ों के अनुसार मैंने नए दस्तावेज़ों के आधार पर 4x2 विजेट के लिए सही माप का उपयोग किया है, और विजेट नेक्सस 7 को छोड़कर सभी उपकरणों पर 4x2 के रूप में पंजीकृत किया है, जहां यह 3x2 – Nick

+0

के रूप में पंजीकृत है Nexus 7 पर क्या होता है आप पुराने माप का उपयोग करते हैं? –

+0

अच्छा, मुझे पता है कि यह काम करेगा, क्योंकि मैं इन विगेट्स के पिछले संस्करण पर पुराने माप का उपयोग कर रहा था। हालांकि, पुराने माप के साथ, उदाहरण के लिए 1x1 टॉगल विजेट, मेरे नेक्सस 4 पर 2x2 के रूप में माप रहा था। नए माप आइसक्रीम सैंडविच के लिए होने चाहिए और जहां ओएस अपने पैडिंग को लागू करता है। नेक्सस 7 4.2 चल रहा है और इसलिए नए माप का उपयोग करना चाहिए। यदि ओएस 3x या निचला – Nick

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