android - Show marker inside a resource drawable which obtained from url -
मेरे पास नक्शा पृष्ठ है, जो मेरे ऐप के सभी उपयोगकर्ताओं को दिखाता है। इसके अलावा छवियों (मार्कर) मेरे सर्वर से दिए गए यूआरएल से प्राप्त की जाती हैं। इन मार्करों को एक ड्रॉएबल (एक सर्कल जैसे छवि दिखाया गया है) के अंदर रखना होगा। मैंने कैनवास का उपयोग करते हुए यूआरएल से बिटमैप की तरह सर्कल बनाया है।
सार्वजनिक ड्रायव शो मे (स्ट्रिंग यूआरएल) {बिटमैप बिटमैप = नल; कोशिश {URL newurl = नया URL (url); बिटमैप = बिटमैपफ़ीन्टर। एकोडस्ट्रीम (newurl.openConnection ()। GetInputStream ()); } पकड़ (Malformedlexception ई) {// TODO स्वत: उत्पन्न होल्डिंग ब्लॉक e.printStackTrace (); } पकड़ (IOException ई) {// TODO ऑटो-जेनरेट कैच ब्लॉक e.printStackTrace (); } बिटमैप = getBitmap (url); पेंट पेंट = नया पेंट (); paint.setFilterBitmap (सही); Int targetWidth = 30; Int targetHeight = 30; बिटमैप लक्ष्यबिटकैप = बिटमैप.कुटिटइटमैप (लक्ष्यविंड, लक्ष्यहाइट, बिटमैप। कॉन्फ़िफ़.एआरजीबी_8888); रीक्टफ रीक्टीफ = नया रीक्टफ (0, 0, 30, 30); कैनवास कैनवास = नया कैनवास (लक्ष्यबिटकैप); पथ पथ = नया पथ (); Path.addRoundRect (rectf, targetWidth, targetHeight, Path.Direction.CW); canvas.clipPath (पथ); Canvas.drawBitmap (बिटमैप, नया रीकट (0, 0, बिटमैप .getWidth (), बिटमैप.गेटहाइट ()), नया रीक्ट (0, 0, लक्ष्यविंड, लक्ष्यहाइट), पेंट); मैट्रिक्स मैट्रिक्स = नया मैट्रिक्स (); मैट्रिक्स.postScale (1f, 1f); बिटमैप का आकार बदल गया बिटमैप = बिटमैप.क्रेडिटबिटामॅप (लक्ष्यबिटकैप, 0, 0, 30, 30, मैट्रिक्स, सत्य); बिटमैप bitmap_circle = मर्जबिटमैप्स (पुनःआकारित बिटमैप); बिटमैपड्रॉउबल बीडी = नया बिटमैपड्रॉवबल (बिटमैप_कार्चेकल); वापसी बीडी; } उपरोक्त फ़ंक्शन मार्कर के लिए अंतिम ड्रॉएबल बनाएगा। इसके अलावा मर्ज बिटमैप () फ़ंक्शन, दोनों संसाधन ड्रॉएबल और बिट मैप को एक साथ मर्ज करता है ..
सार्वजनिक बिटमैप म्यूटबिटमैप्स (बिटमैप मैनबिटमैप) {{बिटमैप मार्करबिटमैप = बिटमैपफ़ेन्टरडेटेरेडस रिसोर्स (this.getResources (), R.drawable.circle_bg) का प्रयास करें; बिटमैप बीएमओवरले = बिटमैप.क्रेडिटबिटामॅप (मार्करबिटमैप.गेटविड्थ), मार्करबिटामॅप.गेटहाइट (), मार्करबिटमैप.गेटकॉन्फ़िग ()); कैनवास कैनवास = नया कैनवास (बीएम ओवरले); मैट्रिक्स मैट्रिक्स = नया मैट्रिक्स (); मैट्रिक्स.postScale (1f, 1f); Canvas.drawBitmap (मार्करबिट्मैप, मैट्रिक्स, रिक्त); Canvas.drawBitmap (manBitmap, 5, 5, null); वापसी बीएम ओवरले; } पकड़ (अपवाद पूर्व) {ex.printStackTrace (); वापसी नल; }} लेकिन समस्या यह है कि यह बिटमैप पृष्ठभूमि के अंदर फिट नहीं है, क्योंकि यह महसूस करने के लिए कि दोनों एक साथ एक छवि दे देंगे।
कोड> कैनवास डावबिटमैप (मैनबिटमैप, 5, 5, रिक्त); की तरह smtg
canvas.drawBitmap (manBitmap, (markerBitmap.getWidth) - manbitmap.getWidth ()) / 2, (markerBitmap.getHyight () -मानबेटमैप.गेटहाइट ()) / 2, शून्य);
Comments
Post a Comment