2010-04-01 18 views
30

मैं एक स्प्लैश स्क्रीन बना रहा हूं जो मेरे एंड्रॉइड एप्लिकेशन लोड होने पर प्रदर्शित होगा। मैं इसे सही आकार में बनाना चाहता हूं ताकि एंड्रॉइड स्क्रीन को फिट करने के लिए इसे ऊपर या नीचे ऑटो-स्केल नहीं करेगा। (यह एक बिटमैप छवि है, जो एक तेल चित्रकला की तस्वीर है, इसलिए मैं इसे नौ पैच में नहीं बदल सकता।)मेरी एंड्रॉइड स्पलैश स्क्रीन क्या संकल्प होनी चाहिए?

लेकिन कम से कम तीन महत्वपूर्ण स्क्रीन आकार हैं जिनकी मुझे परवाह है: 320x480, 480x854 (Droid), और 480x800 (नेक्सस वन)।

मैंने supporting multiple screen sizes पर प्रलेखन पढ़ा है, लेकिन मुझे अभी भी नहीं पता है कि मुझे Droid/Nexus एक के लिए अलग-अलग स्पलैश स्क्रीन को कॉन्फ़िगर करना है (वे दोनों "hdpi" संसाधन हैं जहां तक ​​एंड्रॉइड संबंधित है), और मुझे नहीं पता कि मेरी स्प्लैश स्क्रीन किसी भी मामले में कितनी बड़ी होनी चाहिए। (Droid में ओएस शीर्षक बार/मेनू कितना लंबा है? एन 1?)

मुझे इन छवियों को किस आकार में बनाना चाहिए, और मैं एंड्रॉइड को किसी दिए गए स्क्रीन पर सही आकार का उपयोग करने के लिए कैसे कहूं?

+0

300x300 (या तो) छवि क्यों नहीं बनाते और इसे केंद्रित नहीं करते? – zildjohn01

+0

आपने मेरा दिमाग पढ़ा। मुझे इस सवाल का जवाब देखना अच्छा लगेगा। – Felix

+0

यह एक बिटमैप छवि है। इसे केंद्रित करना इसे अजीब लग रहा है। –

उत्तर

32

आपको पूर्ण स्क्रीन आकार या स्टेटस बार या कुछ भी — के बारे में चिंता करने की आवश्यकता नहीं है, इसीलिए हमारे पास नौ-पैच छवियां हैं।

मैंने जो किया वह एक छवि थी जो प्रत्येक संकल्प के लिए अच्छी लगती थी — अनिवार्य रूप से एक पारदर्शी पृष्ठभूमि पर एक लोगो, नीचे कुछ पाठ के साथ।

फिर मैंने शीर्ष और किनारों के किनारों पर काफी जगह को तोड़ दिया, छवि के चारों ओर एक नौ पैच सीमा बनाई, जिसमें बाएं, दाएं और ऊपरी किनारों के पास एक पिक्सेल था। यह छवि को स्क्रीन भरने के लिए पक्षों और शीर्ष पर समान रूप से विस्तार करने की अनुमति देता है।


संपादित, नीचे दिए गए दान की टिप्पणी के जवाब में:

हाँ, यह तय करने के जो ग्राफिक्स जो स्पष्ट स्क्रीन आकार के लिए इस्तेमाल किया जाना चाहिए एक तरीका है, लेकिन यह deprecated है।

बस के रूप में वहाँ drawable-hdpi और -ldpi संसाधन क्वालिफायर हैं, यह भी drawable-HHHxWWW — बड़ा पिक्सेल आयाम पहले आ रहा है उपयोग करने के लिए संभव है।

उदा। drawable-800x480 और drawable-854x480

+0

मेरे मामले में, मेरी छवि लोगो नहीं है; यह एक बिटमैप चित्र है (यह एक तेल चित्रकला की एक तस्वीर है)। इस पेंटिंग को नौ-पैच छवि में कनवर्ट करना एक विकल्प नहीं है। –

+0

यदि यह ऐसी छवि है, तो मुझे लगता है कि आप इसे खींचना नहीं चाहते हैं। तो मैं इसे प्रत्येक घनत्व के लिए सबसे आम संकल्प में स्केल करूंगा, और इसे एक पारदर्शी (या अन्य) सीमा की अनुमति दूंगा जहां अधिक स्क्रीन स्पेस उपलब्ध हो। –

+0

सीमा जोड़ना अजीब लग रहा है। इसके बजाय, मैं दो संसाधनों को परिभाषित करना चाहता हूं: एक 480x800 के लिए, और दूसरा 480x854 के लिए। क्या यह संभव है? –

6

ठीक है, सबसे पहले: आप android.os.Build के माध्यम से डिवाइस मॉडल पा सकते हैं और यह निर्धारित करने के लिए कि कौन सी छवि दिखाना है इसका उपयोग करें।

दूसरा, मैं व्यक्तिगत रूप से परेशान नहीं होता। लेआउट को डुबकी में किया जाना चाहिए क्योंकि प्रत्येक एंड्रॉइड स्क्रीन 320x480 डुबकी है मेरा मानना ​​है, और एंड्रॉइड मेरे अनुभव में इसके माध्यम से उपकरणों के बीच पहलू अनुपात को बनाए रखता है। जहां तक ​​मैंने सामना किया है, तब तक माता-पिता को भरने के लिए एक 480x800 स्पलैश सेट एन 1 और Droid दोनों पर बहुत विश्वसनीय रहा है।

+0

स्क्रीन रिज़ॉल्यूशन या घनत्व को खोजने के लिए आपको 'Build' को देखने की आवश्यकता नहीं है। पहलू अनुपात भी उपकरणों के बीच काफी जंगली रूप से भिन्न हो सकते हैं; यही कारण है कि 'लंबा' और 'नॉन' संसाधन गुण हैं। वैसे भी, इनमें से कोई भी मामला नहीं है क्योंकि हमारे पास 'drawable-xdpi' फ़ोल्डर्स और नौ-पैच छवियां हैं :) –

+0

सहायक एकाधिक स्क्रीन दस्तावेज़ों के माध्यम से वापस आ गया और आपके पास वास्तव में एक अच्छा बिंदु है। 'लम्बा' और 'नाराज' मुद्दे थे जिन्हें मैं पूरी तरह याद करता था। क्या आप चरम मामलों में अपने नौ-पैच समाधान की कुछ स्क्रीन पोस्ट कर सकते हैं, इसलिए मुझे यह महसूस हो सकता है कि यह विधि चित्रों के चित्रों के लिए किराया कैसे करेगी? – jqpubliq

+1

आप "बहुत भरोसेमंद" कहते हैं, लेकिन जब आप मेरी तरह की बिटमैप छवियों (तेल चित्रकला की एक तस्वीर) के साथ काम कर रहे हैं तो 480x800 बनाम 480x854 पर ध्यान देने योग्य विकृति है। मैं दो संसाधनों को परिभाषित करना चाहता हूं, एक 480x800 के लिए और दूसरा 480x854 के लिए। क्या यह संभव है? –

1

एक और समाधान जिसे मैंने कार्यान्वित किया है वह एक छवि दृश्य डालना है जो स्केल प्रकार "सेंटरक्रॉप" के साथ स्क्रीन (चौड़ाई और ऊंचाई दोनों "MATCH_PARENT") भरता है। इस तरह, छवि खिंचाव नहीं है लेकिन किनारों के साथ फसल। किनारों के नजदीक महत्वपूर्ण सामग्री (लोगो और उस तरह की चीजें) न डालने का प्रयास करें। अगर यह एक तस्वीर है, तो मुझे उम्मीद है कि किनारों "व्यय" हैं और उन्हें बाहर निकाला जा सकता है।

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