2012-02-20 32 views
7

का उपयोग कर ओवरले आइटमों के लिए टैप पर कस्टम सूचना बबल, मैं अपने नए एंड्रॉइड प्रोजेक्ट पर ओएसएमड्रॉइड का उपयोग कर रहा हूं (क्योंकि मैं ऑफ़लाइन मैप्स का उपयोग करने में सक्षम होना चाहता हूं) लेकिन मुझे जानकारी के रूप में देखने के लिए कई कठिनाइयों का सामना करना पड़ता है एक ओवरले आइटम को सौंपा बुलबुला।osmdroid

अभी, मैं अपने आइटम प्रदर्शित करने के लिए ItemizedOverlayWithFocus ओवरले का उपयोग कर रहा हूं; its code पर देखकर, मैंने देखा कि पूरी चीज onDrawFinished विधि में खींची गई थी इसलिए मैंने इस विधि को ओवरराइड करने के लिए अपना स्वयं का कस्टम ओवरले बनाने की कोशिश की लेकिन परिणाम प्राप्त करना बहुत मुश्किल है।

The result

कैसे तुम लोग अपनी परियोजनाओं पर एक कस्टम जानकारी बुलबुला पाने में कामयाब रहे था: क्या मैं पाने के लिए प्यार होता है बस कुछ इस तरह है?

मुझे Google के MapView (जैसे Jeff Gilfelt's MapView Balloons) के लिए ऐसी कुछ चीज़ों को लागू करने के लिए कुछ कक्षाएं मिलीं लेकिन osmdroid के लिए कुछ भी नहीं।

+0

android-mapviewballoons लगभग एक ही एपीआई का उपयोग किया जाना चाहिए। आपने इसे osmdroid पर पोर्ट करने का प्रयास नहीं किया? – Macarse

+0

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

उत्तर

8

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

  • इस उत्तर पुराने गूगल मानचित्र API के लिए सबसे अच्छा था। Google मानचित्र V2 में यह चीज़ पहले ही दी जा चुकी है।

आप से https://github.com/galex/android-mapviewballoons

आप "BalloonItemizedOverlay.java" की विधि से गुब्बारा चयनित कर सकते हैं कोड प्राप्त कर सकते हैं का पालन के रूप में

private void hideOtherBalloons(List<Overlay> overlays) { 
     for(int i=0; i<overlays.size();i++){ 
      if (overlays.get(i) instanceof BalloonItemizedOverlay<?> && overlays.get(i) != this) { 
       ((BalloonItemizedOverlay<?>) overlays.get(i)).hideBalloon(); 
      }else{ 
       BalloonOverlayView.SELECTED_BALLOON = i; 
       Log.i(i+" : Baloon Open", BalloonOverlayView.SELECTED_BALLOON+""); 
      } 
     } 
} 

डेटा आप setBalloonData उपयोग कर सकते हैं सेट करने के लिए BalloonOverlayView.java फ़ाइल का तरीका निम्नानुसार है:

protected void setBalloonData(Item item, ViewGroup parent) { 
     if (item.getTitle() != null) { 
      title.setVisibility(VISIBLE); 
      title.setText(item.getTitle()); 
     } else { 
      title.setText(""); 
      title.setVisibility(GONE); 
     } 
     if (item.getSnippet() != null) { 
      snippet.setVisibility(VISIBLE); 
      snippet.setText(item.getSnippet()); 
     } else { 
      snippet.setText(""); 
      snippet.setVisibility(GONE); 
     } 
} 
+0

लिंक अब 404 है ... – krzysztofkarolczak

+0

क्या आप कृपया स्रोत कोड का लिंक प्रदान कर सकते हैं? – TharakaNirmana

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

  • कोई संबंधित समस्या नहीं^_^