2015-07-13 11 views
5

में दिखाई नहीं करता मैं एक एसवीजी वेक्टर ग्राफिक बनाया (CorelDraw X7 उपयोग करते हुए), कि इस तरह दिखता है:एंड्रॉयड VectorDrawable लेआउट

enter image description here

तब मैं svg2android इस्तेमाल किया यह VectorDrawable प्रारूप में बदलने के लिए। हालांकि, जब मैं लेआउट में इसका इस्तेमाल करने की कोशिश करते हैं, यह प्रकट नहीं होता है:

enter image description here

जैसा कि आप देख सकते हैं, वहाँ एक और वेक्टर drawable सही यह के बगल में है, कि काम करता है ठीक (ताकि svg2android और Android स्टूडियो काम ठीक है)।

यह वास्तविक drawable की एक्सएमएल है:

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:width="24dp" 
android:height="24dp" 
android:viewportWidth="24" 
android:viewportHeight="24"> 
<path 
    android:fillColor="#000000" 
android:pathData="M 1382,680 c 107,0 194,112 194,251 0,138 -87,250  -194,250 -2,0 -3,0 -5,0 -17,98 
-85,219 -230,219 l 0,77 c 0,28 235,1 235,45 l 0,55 -556,0 0,-55 c 0,-59 235,-11 
235,-45 l 0,-77 c -125,0 -211,-106 -230,-219 -1,0 -3,0 -5,0 -107,0 -195,-112 
-195,-250 0,-139 88,-251 195,-251 l 0,0 0,-48 556,0 0,48 z m -555,413 -1,-325 c 
0,0 0,0 0,0 -70,0 -126,73 -126,163 0,89 56,162 126,162 0,0 1,0 1,0 z m 555,-325 
0,325 c 70,0 126,-73 126,-162 0,-90 -56,-163 -126,-163 z" /> 
</vector> 

केवल एक चीज मैं इस फ़ाइल का कोड, और अन्य, काम कर फाइल के कोड के बीच अलग अलग नोटिस, यह है कि इस फाइल में मूल्यों के कुछ काम करने वाली फाइलों की तुलना में नकारात्मक दिखाई देते हैं, जहां वे सभी सकारात्मक हैं।

मैं क्या गलत कर रहा हूं?

+2

'एंड्रॉयड के बारे में पढ़ा:

इस बीच, यहाँ मुझे लगता है कि काम करना चाहिए (मैं इसे परीक्षण नहीं किया गया है) एक हाथ से बदलाव फ़ाइल का संस्करण है viewportWidth' और' एंड्रॉयड: viewportHeight ', उन्हें बदलें, उदाहरण के लिए, 2400 – pskink

उत्तर

11

viewportWidth और viewportHeight के लिए आपके पथ में बिंदुओं के लिए निर्देशांक बहुत बड़े हैं।

पथ सीमांकन बॉक्स है:

x:  631 
y:  632 
width: 945 
height: 945 

लेकिन अपने व्यूपोर्ट सेटिंग को मूल रूप से एंड्रॉयड कह रहे हैं कि यह है:

x:  0 
y:  0 
width: 24 
height: 24 

तो आकार के किनारे से दूर रास्ता तैयार किया जा रहा है आपके आइकन क्षेत्र

मैन्युअल रूप से इसे ठीक करने के तरीके हैं, लेकिन आपकी कोरलड्रा फ़ाइल को समायोजित करना बेहतर होगा ताकि आपका ग्राफ़िक आपके पृष्ठ के ऊपरी बाईं ओर हो। फिर सुनिश्चित करें कि सहेजे गए एसवीजी में viewBox है। यह व्यूबॉक्स है कि svg2android व्यूपोर्टविड्थ और व्यूपोर्ट हाइट की गणना करने के लिए उपयोग करेगा।

यदि आप CorelDraw को व्यूबॉक्स उत्पन्न नहीं कर सकते हैं, तो अपने आइकनों को एक निश्चित आकार पृष्ठ (उदाहरण के लिए 100px x 100px) पर डिज़ाइन करें। फिर आपको मैन्युअल रूप से व्यूबॉक्स जोड़कर एक काम कर रहे एसवीजी प्राप्त करने में सक्षम होना चाहिए।

<svg ... viewBox="0 0 100 100" ...> 

नोट: मैं यहां कुछ शिक्षित अनुमान लगा रहा हूं क्योंकि मेरे पास CorelDraw परीक्षण करने के लिए नहीं है।

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:width="24dp" 
android:height="24dp" 
android:viewportWidth="945" 
android:viewportHeight="945"> 

<group android:translateX="-631" android:translateY="-632"> 
<path 
    android:fillColor="#000000" 
android:pathData="M 1382,680 c 107,0 194,112 194,251 0,138 -87,250  -194,250 -2,0 -3,0 -5,0 -17,98 
-85,219 -230,219 l 0,77 c 0,28 235,1 235,45 l 0,55 -556,0 0,-55 c 0,-59 235,-11 
235,-45 l 0,-77 c -125,0 -211,-106 -230,-219 -1,0 -3,0 -5,0 -107,0 -195,-112 
-195,-250 0,-139 88,-251 195,-251 l 0,0 0,-48 556,0 0,48 z m -555,413 -1,-325 c 
0,0 0,0 0,0 -70,0 -126,73 -126,163 0,89 56,162 126,162 0,0 1,0 1,0 z m 555,-325 
0,325 c 70,0 126,-73 126,-162 0,-90 -56,-163 -126,-163 z" /> 
</group> 
</vector> 
+2

इस अद्भुत उत्तर के लिए धन्यवाद! –

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