Android छप स्क्रीन छवि आकार सभी उपकरणों को फिट करने के लिए


214

मेरे पास एक पूर्ण स्क्रीन पीएनजी है जिसे मैं छप पर प्रदर्शित करना चाहता हूं। केवल एक त्रुटि है, और मुझे पता नहीं क्या आकार हर drawable फ़ोल्डर में डाल करने के लिए है ( ldpi, mdpi, hdpi, और xhdpi)। मेरा आवेदन सभी फोन और टैबलेट पर अच्छा और सुंदर चलाने के लिए माना जाता है। क्या आकार (पिक्सेल में) मुझे बनाना चाहिए ताकि सभी स्क्रीन पर छप अच्छा दिखे?



4
मैं एक स्प्लैश स्क्रीन बनाना चाहता हूं ...
arielschon12

1
@verybadalloc यह अधिक गहराई में हो सकता है, लेकिन मैं आपको आश्वस्त कर सकता हूं कि इसने ओपी को अपनी समस्या से
निपटने में

6
हाँ, मुझे पूरा यकीन है कि इससे उसे मदद नहीं मिली। इस विषय को स्वयं उत्तरों का पता लगाने की कोशिश करते हुए पाया, और मेरे बाद उसी चीज से गुजरने में मदद करने के लिए एक और उत्तर पोस्ट करने का फैसला किया।
लुकास सेरो

मैंने जवाब दिया है कि इसी प्रकार के प्रश्न सहायक stackoverflow.com/questions/30494811/…
रमेश के

जवाबों:


394

अस्वीकरण

यह उत्तर 2013 से है और गंभीरता से पुराना है। Android 3.2 के रूप में स्क्रीन घनत्व के अब 6 समूह हैं। जैसे ही मैं सक्षम हूं, यह उत्तर अपडेट हो जाएगा, लेकिन ईटीए के साथ नहीं। इस समय सभी घनत्वों के लिए आधिकारिक दस्तावेज देखें (हालांकि विशिष्ट पिक्सेल आकारों की जानकारी हमेशा ढूंढना कठिन है)।

यहाँ tl / dr संस्करण है

  • 4 चित्र बनाएं, प्रत्येक स्क्रीन घनत्व के लिए एक:

    • xlarge (xhdpi): 640x960
    • बड़ा (एचडीपीआई): 480x800
    • medium (mdpi): 320x480
    • छोटा (ldpi): 240x320
  • Android डेवलपर गाइड में 9-पैच छवि परिचय पढ़ें

  • ऐसे चित्र डिज़ाइन करें, जिनमें ऐसे क्षेत्र हों, जिन्हें अंतिम परिणाम से समझौता किए बिना सुरक्षित रूप से बढ़ाया जा सके

इसके साथ, एंड्रॉइड डिवाइस की छवि घनत्व के लिए उपयुक्त फ़ाइल का चयन करेगा, फिर यह 9-पैच मानक के अनुसार छवि को खींच देगा।

tl का अंत; डॉ। आगे पूरी पोस्ट

मैं प्रश्न के डिजाइन-संबंधित पहलू के संबंध में उत्तर दे रहा हूं। मैं एक डेवलपर नहीं हूं, इसलिए मैं प्रदान किए गए कई समाधानों को लागू करने के लिए कोड प्रदान करने में सक्षम नहीं होगा। काश, मेरा इरादा उन डिजाइनरों की मदद करने का है जो तब खो गए हैं जब मैं अपने पहले एंड्रॉइड ऐप को विकसित करने में मदद कर रहा था।

सभी आकार फिटिंग

एंड्रॉइड के साथ, कंपनियां अपने मोबाइल फोन और टेबल को लगभग किसी भी आकार में विकसित कर सकती हैं, लगभग किसी भी संकल्प के साथ वे चाहती हैं। उसके कारण, स्प्लैश स्क्रीन के लिए कोई "सही छवि आकार" नहीं है, क्योंकि कोई निश्चित स्क्रीन रिज़ॉल्यूशन नहीं हैं। यह उन लोगों के लिए एक समस्या है जो एक स्प्लैश स्क्रीन को लागू करना चाहते हैं।

क्या आपके उपयोगकर्ता वास्तव में एक स्प्लैश स्क्रीन देखना चाहते हैं?

(एक साइड नोट पर, स्पलैश स्क्रीन प्रयोज्य लोगों के बीच कुछ हतोत्साहित करते हैं। यह तर्क दिया जाता है कि उपयोगकर्ता पहले से ही जानता है कि उसने किस ऐप पर टैप किया है, और स्प्लैश स्क्रीन के साथ आपकी छवि को ब्रांड करना आवश्यक नहीं है, क्योंकि यह केवल उपयोगकर्ता के अनुभव को बाधित करता है। एक "विज्ञापन"। इसका उपयोग उन अनुप्रयोगों में किया जाना चाहिए, जब गेम और ऐसे सहित प्रारंभिक (5s +) कुछ लोडिंग की आवश्यकता होती है, ताकि उपयोगकर्ता यह सोचकर अटक न जाए कि ऐप क्रैश हो गया है या नहीं)

स्क्रीन घनत्व; 4 कक्षाएं

इसलिए, बाजार में फोन में कई अलग-अलग स्क्रीन रिज़ॉल्यूशन दिए जाने पर, Google ने कुछ विकल्प और निफ्टी समाधान लागू किए हैं जो मदद कर सकते हैं। आपको सबसे पहले यह जानना है कि Android सभी स्क्रीन को 4 अलग स्क्रीन घनत्वों में अलग करता है:

  1. कम घनत्व (ldpi ~ 120dpi)
  2. मध्यम घनत्व (mdpi ~ 160dpi)
  3. उच्च घनत्व (एचडीपीआई ~ 240 डीपीआई)
  4. अतिरिक्त-उच्च घनत्व (xhdpi ~ 320dpi) (ये डीपीआई मान सन्निकटन हैं, क्योंकि कस्टम निर्मित डिवाइसों में डीपीआई मान अलग-अलग होंगे)

आपको (यदि आप एक डिजाइनर हैं) यह जानने की जरूरत है कि एंड्रॉइड मूल रूप से डिवाइस के आधार पर 4 छवियों को प्रदर्शित करने के लिए चुनता है। तो आपको मूल रूप से 4 अलग-अलग छवियों को डिज़ाइन करना होगा (हालांकि अधिक विभिन्न स्वरूपों जैसे कि वाइडस्क्रीन, पोर्ट्रेट / लैंडस्केप मोड, आदि के लिए विकसित किया जा सकता है)।

इसे ध्यान में रखते हुए यह जान लें: जब तक आप Android में उपयोग किए जाने वाले हर एक रिज़ॉल्यूशन के लिए एक स्क्रीन डिज़ाइन नहीं करते, आपकी छवि फिट होने के लिए स्क्रीन आकार तक खिंच जाएगी। और जब तक आपकी छवि मूल रूप से एक ढाल या धब्बा है, तब तक आपको स्ट्रेचिंग के साथ कुछ अवांछित विकृति मिलेगी। तो आपके पास मूल रूप से दो विकल्प हैं: प्रत्येक स्क्रीन आकार / घनत्व संयोजन के लिए एक छवि बनाएं, या चार 9-पैच छवियां बनाएं।

सबसे मुश्किल समाधान हर एक संकल्प के लिए एक अलग छप स्क्रीन डिजाइन करना है। आप इस पृष्ठ के अंत में तालिका में प्रस्तावों का पालन करके शुरू कर सकते हैं (और भी हैं। उदाहरण: 960 x 720 वहाँ सूचीबद्ध नहीं है)। और यह मानते हुए कि आपके पास छवि में कुछ छोटे विवरण हैं, जैसे कि छोटे पाठ, आपको प्रत्येक रिज़ॉल्यूशन के लिए एक से अधिक स्क्रीन डिज़ाइन करना होगा। उदाहरण के लिए, एक मध्यम स्क्रीन में प्रदर्शित की जा रही 480x800 की छवि ठीक दिख सकती है, लेकिन छोटी स्क्रीन (उच्च घनत्व / डीपीआई के साथ) पर लोगो बहुत छोटा हो सकता है, या कुछ पाठ अपठनीय हो सकता है।

9-पैच छवि

अन्य समाधान 9-पैच छवि बनाना है । यह मूल रूप से आपकी छवि के चारों ओर एक 1-पिक्सेल-पारदर्शी-सीमा है, और इस सीमा के शीर्ष और बाएं क्षेत्र में काले पिक्सेल को चित्रित करके आप परिभाषित कर सकते हैं कि आपकी छवि के किन हिस्सों में खिंचाव की अनुमति होगी। मैं 9-पैच छवियों के काम करने के विवरण में नहीं जाऊंगा, लेकिन संक्षेप में, पिक्सेल जो शीर्ष और बाएं क्षेत्र में चिह्नों के साथ संरेखित होते हैं, वे पिक्सेल हैं जो छवि को फैलाने के लिए दोहराया जाएगा।

कुछ जमीन नियम

  1. आप इन छवियों को फोटोशॉप (या किसी भी छवि संपादन सॉफ़्टवेयर जो पारदर्शी pngs बना सकते हैं) में बना सकते हैं।
  2. 1-पिक्सेल सीमा को पूर्ण परिवर्तन होना चाहिए।
  3. 1-पिक्सेल पारदर्शी सीमा को आपकी छवि के चारों ओर होना चाहिए, न कि केवल ऊपर और बाएं।
  4. आप इस क्षेत्र में केवल काले (# 000000) पिक्सेल खींच सकते हैं।
  5. शीर्ष और बाईं सीमाएँ (जो छवि को खींचती हुई परिभाषित करती हैं) में केवल एक बिंदु (1px x 1px), दो बिंदु (दोनों 1px x 1px) या एक निरंतर रेखा (चौड़ाई x 1px या 1px x ऊँचाई) हो सकती है।
  6. यदि आप 2 डॉट्स का उपयोग करना चुनते हैं, तो छवि को आनुपातिक रूप से विस्तारित किया जाएगा (ताकि प्रत्येक डॉट अंतिम चौड़ाई / प्राप्त होने तक विस्तार ले जाएगा)
  7. 1px बॉर्डर को इच्छित बेस फ़ाइल आयामों के अतिरिक्त होना चाहिए। तो एक 100x100 9-पैच छवि को वास्तव में 102x102 (100x100 + 1px ऊपर, नीचे, बाएँ और दाएँ) होना चाहिए
  8. 9-पैच छवियों को * .9.png के साथ समाप्त होना है

इसलिए आप अपने लोगो (शीर्ष सीमा पर) के दोनों ओर 1 डॉट रख सकते हैं, और इसके ऊपर और नीचे 1 बिंदु (बाईं सीमा पर), और इन चिह्नित पंक्तियों और स्तंभों को फैलाने के लिए केवल पिक्सेल होंगे।

उदाहरण

यहां एक 9-पैच छवि, 102x102px (100x100 अंतिम आकार, एप्लिकेशन उद्देश्यों के लिए):

9-पैच छवि, 102x102px

यहां एक ही छवि का 200% ज़ूम है:

एक ही छवि, स्पष्टता के लिए 2x बढ़ाया

शीर्ष और बाईं ओर 1px निशान नोटिस करें कि कौन सी पंक्तियों / कॉलम का विस्तार होगा।

यहाँ इस छवि को एप्लिकेशन के अंदर 100x100 में कैसा दिखेगा:

100x100 में प्रदान किया गया

और यहां 460x140 तक विस्तारित होने पर क्या होगा:

460x140 में प्रदान किया गया

एक आखिरी बात पर विचार करें। ये चित्र आपकी मॉनीटर स्क्रीन पर और अधिकांश मोबाइल पर ठीक लग सकते हैं, लेकिन यदि डिवाइस में छवि घनत्व (डीपीआई) बहुत अधिक है, तो छवि बहुत छोटी दिखाई देगी। संभवतः अभी भी सुपाठ्य है, लेकिन 1920x1200 संकल्प के साथ एक टैबलेट पर, छवि बीच में एक बहुत छोटे वर्ग के रूप में दिखाई देगी। तो उपाय क्या है? डिजाइन 4 अलग 9-पैच लांचर छवियों, प्रत्येक एक अलग घनत्व सेट के लिए। यह सुनिश्चित करने के लिए कि कोई सिकुड़ नहीं होगा, आपको प्रत्येक घनत्व श्रेणी के लिए न्यूनतम सामान्य रिज़ॉल्यूशन में डिज़ाइन करना चाहिए। यहां सिकुड़ना अवांछनीय है क्योंकि 9-पैच केवल स्ट्रेचिंग के लिए खाते हैं, इसलिए एक सिकुड़ने की प्रक्रिया में छोटे पाठ और अन्य तत्वों को सुगमता मिल सकती है।

यहां प्रत्येक घनत्व श्रेणी के लिए सबसे छोटे, सबसे सामान्य प्रस्तावों की एक सूची दी गई है:

  • xlarge (xhdpi): 640x960
  • बड़ा (एचडीपीआई): 480x800
  • medium (mdpi): 320x480
  • छोटा (ldpi): 240x320

इसलिए उपरोक्त प्रस्तावों में चार स्प्लैश स्क्रीन डिज़ाइन करें, छवियों का विस्तार करें, कैनवास के चारों ओर 1px पारदर्शी बॉर्डर रखें, और चिह्नित करें कि कौन सी पंक्तियाँ / कॉलम स्ट्रेचेबल होंगे। ध्यान रखें कि ये चित्र घनत्व श्रेणी के किसी भी उपकरण के लिए उपयोग किए जाएंगे , इसलिए आपकी ldpi छवि (240 x 320) एक अतिरिक्त बड़े टैबलेट पर छोटी छवि घनत्व (~ 120 डीपीआई) के साथ 1024x600 तक खिंच सकती है। तो स्ट्रेचिंग के लिए 9-पैच सबसे अच्छा उपाय है, जब तक आप एक स्प्लैश स्क्रीन के लिए फोटो या जटिल ग्राफिक्स नहीं चाहते हैं (इन सीमाओं को ध्यान में रखें जैसे आप डिज़ाइन बनाते हैं)।

फिर, इस स्ट्रेचिंग के न होने का एकमात्र तरीका प्रत्येक रिज़ॉल्यूशन के लिए एक स्क्रीन (या प्रत्येक रिज़ॉल्यूशन-घनत्व संयोजन के लिए एक डिज़ाइन करना है, यदि आप उच्च / कम घनत्व वाले उपकरणों पर बहुत छोटी / बड़ी होने वाली छवियों से बचना चाहते हैं), या बताने के लिए जहां तक ​​स्ट्रेचिंग होती है वहां पृष्ठभूमि का रंग नहीं है और एक पृष्ठभूमि रंग दिखाई देता है (यह भी याद रखें कि एंड्रॉइड इंजन द्वारा प्रदान किया गया एक विशिष्ट रंग संभवतः रंग प्रोफाइल के कारण फोटोशॉप द्वारा प्रदान किए गए समान विशिष्ट रंग से अलग दिखाई देगा)।

मुझे उम्मीद है कि इससे कोई मतलब होगा। सौभाग्य!


1
आपने इसके साथ मेरा जीवन बचाया है, इस उत्तर के लिए बहुत बहुत धन्यवाद।
theGrayFox

7
कुछ मैंने अभ्यास में खोजा। यदि आप 9-पैच छवि का उपयोग करते हैं, तो यह आपके द्वारा समर्थित सबसे छोटी स्क्रीन से छोटी होनी चाहिए। ऐसा प्रतीत होता है कि छवि बड़े पैमाने पर होगी, लेकिन सिकुड़ती नहीं है, जिससे क्लिपिंग होती है ... और यह फ़िटएक्सवाई के लिए सेट होने की आवश्यकता लगती है ..
सीन ऐटकेन

टिप्पणी के लिए धन्यवाद, CleverCoder। क्या आप विस्तार से बता सकते हैं कि किसी भी मुद्दे से बचने के लिए कितना छोटा आदर्श है? मैं मान रहा हूँ कि चौड़ाई और ऊंचाई पर 2px छोटा होना चाहिए?
लुकास सेरो

1
आपने कहा "xlarge (xhdpi): 640x960", लेकिन प्रलेखन का कहना है कि xlarge कम से कम 960dp x 720dp है, इसलिए xhdpi घनत्व के साथ xlarge स्क्रीन 1920px x 1440px होना चाहिए। घनत्व और आकार अलग-अलग अवधारणाएं हैं।
fikr4n

1
@LucasCerro: आपको पहली पंक्ति पर इस अन्यथा शानदार उत्तर पर एक संपादन करने पर विचार करना चाहिए जो कहता है कि उत्तर पुराना है और Android 3.2 से शुरू होने वाले उपलब्ध स्क्रीन की चौड़ाई के आधार पर अब 6 समूह हैं।
जेन्स

119

पोर्ट्रेट मोड

MDPI 320x480 dp = 320x480px (1x) है

LDPI 0.75 x MDPI = 240x360px है

HDPI 1.5 x MDPI = 480x720px है

XHDPI 2 x MDPI = 640x960px है

XXHDPI 3 x MDPI = 960x1440px है

XXXHDPI 4 x MDPI = 1280x1920px है

लैंडस्केप मोड

MDPI 480x320 dp = 480x320px (1x) है

LDPI 0.75 x MDPI = 360x240px है

HDPI 1.5 x MDPI = 720x480px है

XHDPI 2 x MDPI = 960x640px है

XXHDPI 3 x MDPI = 1440x960px है

XXXHDPI 4 x MDPI = 1920x1280px है

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

यदि आप 2019+ में इसे पढ़ रहे हैं तो मैं छप स्क्रीन के लिए Lottie का उपयोग करने का सुझाव दूंगा


1
महान! इस के लिए देख रहा था
Lion789

सबसे उपयोगी समाधान
फ़र्ज़ाद YZ

6
ये मान सही नहीं दिखाई देते हैं। XXHDPI 1920x1080 माना जाता है।
user2966445

हाँ! शुक्रिया यह वही है जिसकी मुझे तलाश थी! बहुत - बहुत धन्यवाद!
हेलीर

टैबलेट के आकार के बारे में कैसे pls?
beeing जे

29

पोर्ट्रेट

LDPI: 200x320px

MDPI: 320x480px

एचडीपीआई: 480x800px

XHDPI: 720px1280px

लैंडस्केप

LDPI: 320x200px

MDPI: 480x320px

HDPI: 800x480px

XHDPI: 1280x720px


2
भौतिक स्क्रीन आकार और संकल्प स्वतंत्र अवधारणाएं हैं। पिक्सेल में छवि का आकार दोनों का उत्पाद है।
हेनरी

1
XXHDPI, XXXHDPI का आकार बताएं?
हितेश १४१

इस उत्तर में दिए गए मान यहां दी गई जानकारी के अनुपात में नहीं दिखाई देते हैं: stackoverflow.com/a/19661363/1617737 । मुझे लगता है कि स्वीकृत उत्तर, हालांकि पुराने हैं, सही होने की अधिक संभावना है।
प्रतिबंध-जियोइंजीनियरिंग

17

मैंने 9-पैच छवि बनाने के लिए सबसे अच्छा और सरल उत्तर खोजा है। अब 9 पैच इमेज बनाना सबसे आसान काम है।

से https://romannurik.github.io/AndroidAssetStudio/index.html बस एक क्लिक में XHDPI, HDPI, MDPI, LDPI - आप सभी प्रस्तावों के लिए एक 9-पैच छवि बना सकते हैं।


12

PNG का उपयोग करना इतना अच्छा विचार नहीं है। वास्तव में जहां तक ​​प्रदर्शन का सवाल है यह महंगा है। उदाहरण के लिए, फेसबुक की पृष्ठभूमि के लिए आप ड्रा करने योग्य XML फ़ाइलों का उपयोग कर सकते हैं ।

यह आपको अपने प्रदर्शन को सुचारू और तेज़ करने में मदद करेगा, और लोगो के उपयोग के लिए .9 पैच इमेज।


10
Density buckets

LDPI    120dpi    .75x
MDPI    160dpi    1x
HDPI    240dpi    1.5x
XHDPI   320dpi    2x
XXHDPI  480dpi    3x
XXXHDPI 640dpi    4x

px / dp = dpi / 160 dpi

4

कुछ समय पहले मैंने समर्थित आयामों के साथ एक एक्सेल फाइल बनाई थी।
आशा है कि यह किसी के लिए उपयोगी होगी

ईमानदार होने के लिए मैंने विचार खो दिया है, लेकिन यह आकार के रूप में एक और स्क्रीन सुविधा को संदर्भित करता है (न केवल घनत्व)
https://developer.android.com/guide/practices/screens_support.html
कृपया कुछ गलतियाँ होने पर मुझे सूचित करें

लिंक 1: आयाम। xlsx

लिंक 2: आयाम। xlsx


4

मेरे मामले में, मैंने style.xml में ड्रा करने योग्य सूची का उपयोग किया। लेयर लिस्ट ड्रा करने योग्य होने के साथ, आपको केवल सभी स्क्रीन साइज के लिए एक png की आवश्यकता होती है।

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/flash_screen</item>
    <item name="android:windowTranslucentStatus" tools:ignore="NewApi">true</item>
</style>

और drawable फ़ोल्डर में flash_screen.xml।

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white"></item>
    <item>
        <bitmap android:src="@drawable/background_noizi" android:gravity="center"></bitmap>
    </item>
</layer-list>

"background_noizi" ड्रॉबल फोल्डर में एक पीएनजी फाइल है। आशा है कि ये आपकी मदद करेगा।


अगर आपकी पृष्ठभूमि की छवि बहुत बड़ी है तो यह फैल जाएगी
ShadeToD


2

संपादित समाधान जो आपके स्प्लैशस्क्रीन को API21 सहित API23 तक सभी पर बहुत अच्छा लगेगा

यदि आप केवल APIs24 को लक्षित कर रहे हैं + तो आप अपनी वेक्टर ड्रॉबल को सीधे इसके xml फ़ाइल में स्केल कर सकते हैं जैसे:

<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="640"
android:viewportHeight="640"
android:width="240dp"
android:height="240dp">
<path
    android:pathData="M320.96 55.9L477.14 345L161.67 345L320.96 55.9Z"
    android:strokeColor="#292929"
    android:strokeWidth="24" />
</vector>

ऊपर दिए गए कोड में मैं एक ड्रॉबल का आकार ले रहा हूं जिसे मैंने 640x640 कैनवास पर 240x240 पर आकर्षित किया है। तब मैंने इसे अपनी स्प्लैश स्क्रीन की तरह आकर्षित किया और यह बहुत अच्छा काम करता है:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"
android:paddingBottom="20dp" android:paddingRight="20dp" android:paddingLeft="20dp" android:paddingTop="20dp">

<!-- The background color, preferably the same as your normal theme -->
<item>
    <shape>
        <size android:height="120dp" android:width="120dp"/>
        <solid android:color="@android:color/white"/>
    </shape>
</item>

<!-- Your product logo - 144dp color version of your app icon -->
<item
    android:drawable="@drawable/logo_vect"
    android:gravity="center">

</item>
</layer-list>

मेरा कोड वास्तव में केवल निचले हिस्से में चित्र में त्रिभुज खींच रहा है, लेकिन यहां आप देखते हैं कि आप इसके साथ क्या हासिल कर सकते हैं। बिटमैप का उपयोग करते समय मेरे द्वारा प्राप्त पिक्सेल किनारों के विपरीत रिज़ॉल्यूशन अंततः महान है। इसलिए हर तरह से एक वेक्टर ड्रा करने योग्य का उपयोग करें (vectr नाम की एक साइट है जिसे मैं डाउनलोडिंग डेटा डाउनलोड करने के बिना मेरा निर्माण करता था)।

EDIT यह API21-22-23 पर भी काम करने के लिए

हालांकि API24 चलाने वाले उपकरणों के लिए उपरोक्त समाधान काम करता है + मैं अपने ऐप को API22 चलाने वाले डिवाइस को इंस्टॉल करने के बाद वास्तव में निराश हो गया। मैंने देखा कि स्प्लैशस्क्रीन फिर से पूरे दृश्य को भरने और गंदगी की तरह दिखने की कोशिश कर रही थी। आधे दिन के लिए मेरी भौंहों को फाड़ने के बाद, मैंने आखिरकार सरासर इच्छाशक्ति द्वारा समाधान को मजबूर कर दिया।

आपको स्प्लैशस्क्रीन xml की तरह एक दूसरी फ़ाइल बनाने की आवश्यकता है (इसे splash_screen.xml कहते हैं) और इसे 2 फ़ोल्डर्स में ड्रा करने योग्य -2222 और ड्रॉबल-वी 21 कहते हैं जिसे आप रेस / फ़ोल्डर में बनाएंगे (उन्हें देखने के लिए) Android से प्रोजेक्ट के लिए अपना प्रोजेक्ट दृश्य बदलना होगा)। यह आपके फोन को उन फ़ोल्डरों में रखी गई फ़ाइलों को पुनर्निर्देशित करने के लिए कहता है, जब भी संबंधित डिवाइस किसी फ़ोल्डर में ड्रा-फोल्डर में -vXX प्रत्यय से संबंधित एक एपीआई चलाता है, तो इस लिंक को देखें । निम्न कोड को splash_screen.xml फ़ाइल की परत-सूची में रखें जिसे आप इन फ़ोल्डरों में बनाते हैं:

<item>
<shape>
    <size android:height="120dp" android:width="120dp"/>
    <solid android:color="@android:color/white"/>
</shape>
</item>

<!-- Your product logo - 144dp color version of your app icon -->
<item android:gravity="center">
    <bitmap android:gravity="center"
        android:src="logo_vect"/>

</item>

ये कैसे फ़ोल्डर्स दिखते हैं

इन एपीआई के लिए किसी कारण के लिए आपको इसे काम करने के लिए बिटमैप में लपेटना पड़ता है ताकि यह काम कर सके और अंतिम परिणाम समान दिखे। मुद्दा यह है कि आपको एडिफ़ेबल ड्राबल फोल्डर्स के साथ aproach का उपयोग करना होगा क्योंकि splash_screen.xml फ़ाइल का दूसरा संस्करण आपके स्प्लैश स्क्रीन को 23 से अधिक एपीआई वाले उपकरणों पर नहीं दिखाया जाएगा। एंड्रॉइड के लिए ड्रॉबल-वी 24 में स्प्लैश_स्क्रीन.एक्सएमएल का पहला संस्करण, क्योंकि यह निकटतम संसाधनों के लिए एंड्रॉइड डिफॉल्ट के रूप में है जो इसे संसाधनों के लिए खोज सकता है। उम्मीद है की यह मदद करेगा

मेरी छप


0

लुकास सेरो के इस जवाब के आधार पर मैंने जवाब में आधार रेखा का उपयोग करके एंड्रॉइड डॉक्स में अनुपात का उपयोग करके आयामों की गणना की । मुझे उम्मीद है कि यह किसी और को इस पद पर आने में मदद करता है!

  • xxxlarge (xxxhdpi): 1280x1920 (4.0x)
  • xxlarge (xxhdpi): 960x1440 (3.0x)
  • xlarge (xhdpi): 640x960 (2.0x)
  • बड़ा (एचडीपीआई): 480x800 (1.5x)
  • मध्यम (mdpi): 320x480 (1.0x बेसलाइन)
  • छोटा (ldpi): 240x320 (0.75x) 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.