Özel işaretleyici ile Android Mapview uygulamıyorum. Görüntüyü işaretçi görünümüne yüklemek için picasso kullanıyorum. Fakat haritalar bana ihtiyaç duyduğum işareti göstermiyor.Özel harita işaretleyici ile resim yüklenmedi.
İşte benim İşte kod
i = getIntent();
if(i.getBooleanExtra("maps", true)) {
mactionBar.setSubtitle(i.getStringExtra("nama"));
mMyMarkersArray.add(new MyMarker(i.getStringExtra("nama"), i.getStringExtra("deskripsi"), i.getStringExtra("foto"), i.getStringExtra("marker"), Double.parseDouble(i.getStringExtra("lat")), Double.parseDouble(i.getStringExtra("lng"))));
plotMarkers(mMyMarkersArray);
}
görüntü işaretleyici yüklemek için kod. Bu harita görünümüne yol açan iki etkinlik olduğu için if(i.getBooleanExtra("maps", true))
uyguluyorum. Bir önceki etkinlik gerçek bir değer koyduysa, o zaman sadece bir işaretçi verisi getirecektir. Ancak değer yanlışsa, tüm işaretçi verilerini getirir. Haritalar görünümünde, yanlış değer getiren önceki etkinlikten elde ettiğimde ihtiyaç duyduğum tüm işaretçileri gösterir. Ancak, harita görünümü, gerçek değeri getiren etkinlikten elde edilmişse bana bir işaretçi göstermez.
public void plotMarkers(ArrayList<MyMarker> markers) {
if(markers.size() > 0) {
for (MyMarker myMarker : markers)
{
markerOption = new MarkerOptions().position(new LatLng(myMarker.getmLatitude(), myMarker.getmLongitude()));
location_marker = mMap.addMarker(markerOption);
Target target = new PicassoMarker(location_marker);
targets.add(target);
Picasso.with(MapsActivity.this).load(myMarker.getmIcon()).resize(84, 125).into(target);
mMarkersHashMap.put(location_marker, myMarker);
i = getIntent();
if(i.getBooleanExtra("maps", true)) {
buttonNavigasi.setVisibility(View.VISIBLE);
location_marker.setTitle(i.getStringExtra("nama"));
dest = new LatLng(myMarker.getmLatitude(), myMarker.getmLongitude());
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(dest, 16));
}
else {
mMap.setInfoWindowAdapter(new MarkerInfoWindowAdapter());
}
}
}
}
İşte ben MapsActivity
buttonNavigasi = (AppCompatButton) findViewById(R.id.button2);
buttonNavigasi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(DetailActivity.this,MapsActivity.class);
i.putExtra("nama", daftarNama);
i.putExtra("deskripsi", daftarDeskripsi);
i.putExtra("foto", daftarFoto);
i.putExtra("marker", daftarMarker);
i.putExtra("lng", daftarLng);
i.putExtra("lat", daftarLat);
i.putExtra("maps", true);
startActivity(i);
}
});
İşte plotMarkers burada sorun ne
public void plotMarkers(ArrayList<MyMarker> markers) {
if(markers.size() > 0) {
for (MyMarker myMarker : markers)
{
markerOption = new MarkerOptions().position(new LatLng(myMarker.getmLatitude(), myMarker.getmLongitude()));
location_marker = mMap.addMarker(markerOption);
Target target = new PicassoMarker(location_marker);
targets.add(target);
Picasso.with(MapsActivity.this).load(myMarker.getmIcon()).resize(84, 125).into(target);
mMarkersHashMap.put(location_marker, myMarker);
i = getIntent();
if(i.getBooleanExtra("maps", true)) {
buttonNavigasi.setVisibility(View.VISIBLE);
location_marker.setTitle(i.getStringExtra("nama"));
dest = new LatLng(myMarker.getmLatitude(), myMarker.getmLongitude());
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(dest, 16));
}
else {
mMap.setInfoWindowAdapter(new MarkerInfoWindowAdapter());
}
}
}
}
PicassoMarker sınıf
public class PicassoMarker implements Target {
Marker mMarker;
PicassoMarker(Marker marker) {
mMarker = marker;
}
@Override
public int hashCode() {
return mMarker.hashCode();
}
@Override
public boolean equals(Object o) {
if(o instanceof PicassoMarker) {
Marker marker = ((PicassoMarker) o).mMarker;
return mMarker.equals(marker);
} else {
return false;
}
}
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
mMarker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
}
yöntemi var diyoruz nasıl kod?
Teşekkürler.
bunu görmüştüm: 'if (i.getBooleanExtra ("haritalar", true))' ve Amacın ne olduğundan emin değil miyim? Gönderinize neden bu değeri kontrol ettiğinizi ekleyebilir misiniz? –
Gönderiyi tekrar kontrol et. –
Kod snippet'ini "MapsActivity" olarak adlandırdığınıza ekleyebilir misiniz? Ayrıca, 'if (i.getBooleanExtra ("maps", true)) 'ı nereye çağırıyorsunuz? 'OnCreate() 'da umarım .. –