【发布时间】:2016-07-07 10:50:17
【问题描述】:
我正在使用自定义标记实现 android Mapview。我正在使用毕加索将图像加载到标记视图中。当我第一次启动应用程序时,它会显示所有标记,但只有一个标记是从数据库中加载毕加索的,其他标记不是从数据库加载的,它们只显示默认地图标记针。但是,当我转到上一个活动并返回 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());
}
}
}
}
这里出了什么问题?
谢谢。
【问题讨论】:
-
我对此并不完全确定,因为我无法最终测试它,但是您是否尝试在
location_marker = mMap.addMarker(markerOption);之前调用这些行target = new PicassoMarker(location_marker); Picasso.with(MapsActivity.this).load(myMarker.getmIcon()).resize(84, 125).into(target);? -
你能试一试并告诉我它是否有效..?
-
是的,我试过了,但我得到了相同的结果。
标签: java android google-maps google-maps-markers