का उपयोग कर एक मार्कर एक imageView मैं एक लक्ष्य के बजाय
for(int x =0; x < mapIcon_url.length; x++){
Picasso.with(getActivity()).load(mapIcon_url[x]).resize(marker_size, marker_size+15).into(new Target() {
@Override
public void onSuccess(Bitmap b) {
bitmapMarker = BitmapDescriptorFactory.fromBitmap(b);
//create marker option
if(b != null)
markerOptions = new MarkerOptions().position(marker_position).icon(bitmapMarker));
else
markerOptions = new MarkerOptions().position(marker_position).icon(BitmapDescriptorFactory.fromResource(R.drawable.placeholder_pin)).snippet(String.valueOf(x));
marker = map.addMarker(markerOptions);
}
@Override
public void onError() {
//create marker option
markerOptions = new MarkerOptions().position(marker_position).icon(BitmapDescriptorFactory.fromResource(R.drawable.placeholder_pin)).snippet(String.valueOf(x));
marker = map.addMarker(markerOptions);
}
});
}
मैं का उपयोग करने की कोशिश की नहीं है के रूप में एक यूआरएल से मेरे मानचित्र के लिए मार्कर जोड़ रहा साथ यूआरएल से मार्कर जोड़ना मैं इसे लगभग 20 मार्कर जोड़ने के लिए एक लूप में कर रहा हूं लेकिन मुझे लगता है कि कोड के पहले भाग पर केवल 5 या 7 मार्कर जोड़े गए हैं, इसलिए मैंने इस तरह lib और एक AsyncTask का उपयोग करने के लिए स्विच किया है।
for(int x =0; x < mapIcon_url.length; x++){
new AddMarker().execute(mapIcon_url[x]);
}
public class AddMarker extends AsyncTask<String, Integer, BitmapDescriptor> {
BitmapDescriptor bitmapMarker1;
VenueDetails myVenue;
@Override
protected BitmapDescriptor doInBackground(String... url) {
myUrl = url[0];
try {
bitmapMarker1 = BitmapDescriptorFactory.fromBitmap(Picasso.with(getActivity()).load(myUrl).resize(marker_size, marker_size+15).get());
} catch (IOException e) {
e.printStackTrace();
}
return bitmapMarker1;
}
protected void onPostExecute(BitmapDescriptor icon) {
try {
map.addMarker(new MarkerOptions().position(marker_position).icon(icon)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
हालांकि मैं थोड़ा चिंतित जब मैं मार्करों के बहुत कहने के बारे में 100 मेरा प्रश्न होगा इस यह करने के लिए सबसे अच्छा तरीका है इस विधि मुझे कुछ मुद्दों पर दे सकता है और यदि नहीं क्या अन्य विकल्प कर सकते हैं मैं कोशिश करूँगा।
मैं आपके पहले दृष्टिकोण को डीबग करने पर ध्यान केंद्रित करूंगा। यह निर्धारित करने के लिए कि आप मार्कर प्राप्त करने में असफल रहे हैं, ब्रेकपॉइंट्स या लॉगिंग स्टेटमेंट का उपयोग करें। – CommonsWare
मैंने पिकासो वर्ग को कॉल करने से पहले, लक्ष्य के ऑनसिस और ऑनर ओवरराइड विधियों में लॉगिंग स्टेटमेंट का उपयोग किया था। लॉग दिखाते हैं कि देखो को 20 बार कहा जाता था, परसिस को कुछ बार कहा जाता था और ऑनर कभी नहीं बुलाया जाता था। –
जेक ने कल पिकासो 2.0.0 जारी किया - यदि आप पहले से ऐसा नहीं कर चुके हैं तो आप कोशिश कर सकते हैं। अन्यथा, आप एक पुन: उत्पन्न परीक्षण केस बनाने और पिकासो परियोजना के साथ एक समस्या दर्ज करने का प्रयास कर सकते हैं। मुझे आपके पास जो कुछ है उसके साथ कोई विशेष समस्या नहीं दिख रही है। – CommonsWare