2010-01-19 8 views
6

मैं एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं और मैं आइटमइज्ड ओवरले का उपयोग करके मानचित्र पर कई आइकनों को प्रदर्शित करने में सक्षम हूं और मैंने आइटमइज्ड ओवरले के टैप (इंट इंडेक्स) विधि को आइकन विशिष्ट जानकारी प्रदर्शित करने के लिए भी लागू किया है आवश्यक खिड़कीItemizedOverlay का सेटफोकस (ओवरलेइटम) काम नहीं कर रहा है

अब, जब मैं किसी अन्य घटक पर क्लिक करता हूं तो मैं चयनित ओवरले के आइकन को बदलना चाहता हूं। मैं विशिष्ट ओवरले के अलग-अलग आइकन को प्रदर्शित करने के लिए ItemizedOverlay की setFocus (OverlayItem) विधि को कॉल कर रहा हूं। जब उपयोगकर्ता किसी भी विशिष्ट ओवरले पर टैप करता है तो यह ठीक काम करता है लेकिन जब मैं setFocus (OverlayItem) विधि को कॉल करता हूं तो आइकन नहीं बदलता है।

कोई बात नहीं? MapView में चयनित ओवरले के प्रोग्रामिक रूप से बदलते आइकन का सबसे अच्छा तरीका क्या है?

मैंने ओवरराइड प्राप्त किया है मेरे कस्टम ओवरलेइटम वर्ग की मार्कर विधि ओवरले इटैम के विभिन्न राज्यों के लिए अलग-अलग मार्कर प्रदर्शित करने के लिए। और मैं ओवरलेइटम की स्थिति बदलने के लिए सेटफोकस (ओवरलेइटम) विधि का उपयोग करना चाहता हूं और चयनित होने पर मार्कर को भी बदलना चाहता हूं।

@Override 
public Drawable getMarker(int stateBitset){ 
if(stateBitset==0){ 
    icon = Util.getCategoryMapIcon(0); 
    icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0); 
    return icon; 
}else { 
    icon = Util.getCategoryMapIcon(OverlayItem.ITEM_STATE_SELECTED_MASK); 
    icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0); 
    return icon; 
} 
} 

यहाँ Util.getCategoryMapIcon (0) उपयोगिता उचित आइकन वापस जाने के लिए विधि है, इस विधि लेता है कुछ मानकों, जो मैं इस उदाहरण बनाने के लिए हटा दिया है सरल है।

और नीचे राज्य

Button leftNavigation = (Button) findViewById(R.id.left_navigation_button); 
leftNavigation.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
    OverlayItem item = searchResultsOverlay.get(index+1); 
    setFocus(item); 
} 
}); 

किसी भी मदद की बहुत सराहना की जाएगी बदलने के लिए कोड है। धन्यवाद, आमिर

उत्तर

0

अपने getMarker कोड में, लौटने की कोशिश एक StateListDrawable (जो drawable एक्सएमएल में <selector> से मेल खाती है) कि एक डिफ़ॉल्ट drawable (कोई राज्यों) और android.R.attr.state_focused राज्य के साथ एक drawable में शामिल है। इस जवाब के साथ Android ListView Selector Color

+0

किसी भी भाग्य:

यहाँ एक संबंधित सवाल देखते हैं? अनुवर्ती करने के लिए स्वतंत्र महसूस करें। –

+0

धन्यवाद रोमन। यह बहुत अच्छा काम किया। –