12

Hallo,एंड्रॉयड विजेट बिटमैप आकार

मैं एक विजेट लिख रहा हूँ, लेकिन अनिश्चित क्या आकार बिटमैप प्रत्येक स्क्रीन संकल्प/घनत्व के लिए एक पृष्ठभूमि के रूप में उपयोग करने के लिए कर रहा हूँ।

करने के लिए Android Developer App Widgets ट्यूटोरियल अनुसार:

To find your minimum width and height in density-independent pixels (dp), use this formula: 
(number of cells * 74) - 2 
Following this formula, you should use 72 dp for a height of one cell, 294 dp and for a width of four cells 

मेरी विजेट है तो अगर 72dp एक्स 294dp, क्या आकार बिटमैप्स मैं अपने ldpi, mdpi और hdpi ड्रॉएबल के लिए की जरूरत है?

इसके अलावा, क्या मुझे अपने मैनिफेस्ट में किसी विशेष समर्थन-स्क्रीन सेटिंग्स की आवश्यकता होगी?

TIA,

-Frink

अद्यतन: मैं हर drawable- फ़ोल्डर के लिए विभिन्न आकारों और रंगों में कुछ बिसात पैटर्न बनाया है और उन्हें बाहर की कोशिश की है। क्या यह घनत्व चीज लाल हेरिंग का थोड़ा सा है?

मैंने अभी एचवीजीए, मध्यम घनत्व, 320x480 के रूप में चल रहे मेरे एमुलेटर का स्क्रीन-ग्रैब किया है। मेरे विजेट द्वारा लिया गया आकार 320x100 है, इसलिए मैं अपने विजेट के लिए पृष्ठभूमि के रूप में mdpi फ़ोल्डर में 320x100 बिटमैप बनाता हूं, यह मेरे एमुलेटर और एलजी GT540 दोनों पर सही दिखता है।

और WVGA854, उच्च घनत्व, 480x854 के रूप में चल रहे एक एमुलेटर के लिए। मेरे विजेट का आकार 480x150 है। इस आकार को पृष्ठभूमि बनाना और इसे इस एमुलेटर पर एचडीपीआई फ़ोल्डर में सही तरीके से प्रदर्शित करना। मैं :-(

Update2 यद्यपि यह परीक्षण करने के लिए कोई हार्डवेयर है: मुझे लगता है कि मैं मेरी समस्या बेहतर अब :-)

अगर मैं तीन उपकरणों है व्याख्या कर सकते हैं:

Device1, resolution 320x480, density ldpi 
Device2, resolution 320x480, density mdpi 
Device3, resolution 400x854, density mdpi 

भौतिक स्क्रीन का आकार शायद अलग होगा, लेकिन मुझे नहीं लगता कि वास्तविक आकार

मैंने काम किया है कि डिवाइस 1 और डिवाइस 2 को 320x100 की पृष्ठभूमि की आवश्यकता होगी, जबकि डिवाइस 3 को 400x150 की आवश्यकता होगी तो क्या है I2 पृष्ठभूमि डिवाइस 2 और डिवाइस 3 पर ठीक से प्रदर्शित करने के लिए mdpi फ़ोल्डर में जाता है?

+0

मैं भी जवाब में दिलचस्पी रखता हूँ। मेरा विजेट एक एकल सेल है, और मेरे द्वारा उपयोग किए जाने वाले छवि आकार 72px, 100px और 150px के वर्ग हैं। हालांकि ये अनुमान थे, इसलिए मुझे "आधिकारिक" संख्याओं को जानना बहुत दिलचस्पी होगी। –

+0

आपके अपडेट के जवाब में, ऐसा लगता है कि यह काम कर रहा है, है ना? या क्या कोई समस्या है? साथ ही, जब आप अपना एमुलेटर लॉन्च करते हैं, तो एमुलेटर को "वास्तविक" आकार में स्केल करने के लिए एक सेटिंग (या यह एमुलेटर सेटिंग्स में हो सकती है), जो आपको परीक्षण करने में मदद कर सकती है। – Computerish

+0

कंप्यूटरिश - कृपया अपडेट 2 देखें! मैं अपने अनुकरणकर्ताओं को 'असली' आकार में देख रहा हूं, टा – FrinkTheBrave

उत्तर

9

तुम बस ldpi, mdpi, और hdpi के लिए वास्तविक पिक्सेल आकार में 72dp एक्स 294dp बदलना होगा।यही कारण है कि प्रक्रिया यहाँ समझाया गया है:

http://developer.android.com/guide/practices/screens_support.html

सूत्र pixels = dps * (density/160) है, आपके मामले में ऐसा है, तो 72 डी पी एक्स 294 डी पी बराबर होगा:

  • ldpi (120): 54 x 221 पिक्सल
  • mdpi (160): 72 x 294 पिक्सल
  • hdpi (240): 108 x 441 पिक्सल
  • xhdpi (320): 144 x 588 पिक्सल

आपके दूसरे अपडेट के जवाब में अपडेट करें: घनत्व-आधारित संसाधनों का उद्देश्य यह सुनिश्चित करना है कि ग्राफिक्स (मोटे तौर पर) डिवाइसों में समान वास्तविक आकार हैं। आपके मामले में, हालांकि, आपको वास्तविक आकार की परवाह नहीं है, आप विजेट के लिए जो भी स्थान भरना चाहते हैं उसे भरने वाली पृष्ठभूमि की परवाह करते हैं। आपको नौ पैच छवि बनाकर अधिकांश पृष्ठभूमि के लिए इस समस्या को संभालने में सक्षम होना चाहिए। नौ पैच आवश्यक आकार के अनुसार स्केल करेगा।

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

http://developer.android.com/guide/developing/tools/draw9patch.html

+0

चीयर्स, मैं इसे एक मौका दूंगा जब मुझे अगली मौका मिलेगा – FrinkTheBrave

+0

@ फ़्रिंक द ब्रेव कृपया हमें बताएं कि आप –

+0

कंप्यूटरिश पर कैसे पहुंचते हैं, ऐसा लगता है कि खींचने योग्य फ़ोल्डर्स घनत्व के बजाय स्क्रीन आकार से संबंधित होना चाहिए? – FrinkTheBrave

2

आइकन पर गूगल से अच्छी सलाह है यहाँ आकार: http://developer.android.com/guide/practices/ui_guidelines/icon_design.html

मुझे लगता है कि वे कस्टम पर लागू होना चाहिए भी विजेट।

+2

आइकन और ड्राइटेबल डिज़ाइन दिशानिर्देश ** विजेट छवियों को छोड़कर ** सबकुछ पर लागू होने लगते हैं। इसलिए भ्रम। –

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