Я реализую андроид Mapview с пользовательским маркером. Я использую picasso для загрузки изображения в представление маркера. И когда я запускаю приложение в первый раз, он показывает мне все маркеры, но только один маркер, загруженный из базы данных с помощью picasso, другие маркеры не загружаются из базы данных, они показывают мне только вывод маркера карт по умолчанию. Но когда я перехожу к предыдущему действию и возвращаюсь в MapsActivity, он показывает мне все маркеры, загруженные из базы данных с помощью picasso.Карт-маркерное изображение точки с пикассо не загружено в первый раз
Вот мой PicassoMarker класс
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) {
//mMarker.setIcon(BitmapDescriptorFactory.fromResource(R.mipmap.here));
}
}
Вот метод в MapsActivity
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 = new PicassoMarker(location_marker);
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());
}
}
}
}
Что происходит здесь не так?
Спасибо.
Я не совсем уверен в этом, так как я не могу проверить это на моем конце, но вы пробовали называть эти строки 'target = new PicassoMarker (location_marker); Picasso.with (MapsActivity.this) .load (myMarker.getmIcon()). Resize (84, 125) .into (target); 'before' location_marker = mMap.addMarker (markerOption);'? –
Можете ли вы попробовать и сказать мне, если это как-то работает ..? –
Да, я пробовал, но я получаю тот же результат. –