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