我正在使用谷歌API,我已经为标记创建了一个自定义信息窗口。 我需要显示工具栏地图,但使用此方法 map.getUiSettings()。 setMapToolbarEnabled(true), 当我点击标记时,它会显示我的infowindow但不显示工具栏。
CODE:
@覆盖 public void onMapReady(GoogleMap googleMap){
mMap = googleMap;
mMap.getUiSettings().setMapToolbarEnabled(true);
mMap.setOnMarkerClickListener(this);
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
MarkerCouple idtype = (MarkerCouple) marker.getTag();
if (idtype.getType() == ResourceType.EVENTS && currentEvents.get(idtype.getID()) != null) {
Resources resources = currentResources.get(currentEvents.get(idtype.getID()).getRes_ID());
Events event = currentEvents.get(idtype.getID());
Intent i = new Intent(MainActivity.this, ShowEventActivity.class);
i.putExtra(Variable.USER_JSON, user.toJSON());
i.putExtra(Variable.EVENT_JSON, event.toJSON());
i.putExtra(Variable.RESOURCE_JSON, resources.toJSON());
startActivityForResult(i, Variable.SHOW_EVENT);
}
if (idtype.getType() == ResourceType.PLACES && currentPlaces.get(idtype.getID()) != null) {
Resources resources = currentResources.get(currentPlaces.get(idtype.getID()).getRes_ID());
Places place = currentPlaces.get(idtype.getID());
Intent i = new Intent(MainActivity.this, ShowPlaceActivity.class);
i.putExtra(Variable.USER_JSON, user.toJSON());
i.putExtra(Variable.PLACE_JSON, place.toJSON());
i.putExtra(Variable.RESOURCE_JSON, resources.toJSON());
startActivityForResult(i, Variable.SHOW_PLACE);
}
}
});
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
View v = getLayoutInflater().inflate(R.layout.marker_preview, null);
ImageView m = (ImageView) v.findViewById(R.id.marker_image);
m.setImageBitmap(Bitmap.createScaledBitmap(imageToShow, 600, 400, true));
return v;
}
@Override
public View getInfoContents(Marker marker) {
return null;
}
});
new MarkerAsync().execute();
}
@Override
public boolean onMarkerClick(final Marker marker) {
MarkerCouple idtype = (MarkerCouple) marker.getTag();
if (idtype.getType() == ResourceType.EVENTS && currentEvents.get(idtype.getID()) != null) {
Events event = currentEvents.get(idtype.getID());
final Resources resources = currentResources.get(event.getRes_ID());
Picasso.with(MainActivity.this).invalidate(Variable.DOWNLOAD_URL + resources.getURI());
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
imageToShow = Picasso.with(MainActivity.this).load(Variable.DOWNLOAD_URL + resources.getURI()).get();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void v) {
marker.showInfoWindow();
}
}.execute();
}
if (idtype.getType() == ResourceType.PLACES && currentPlaces.get(idtype.getID()) != null) {
Places place = currentPlaces.get(idtype.getID());
final Resources resources = currentResources.get(place.getRes_ID());
Picasso.with(MainActivity.this).invalidate(Variable.DOWNLOAD_URL + resources.getURI());
Picasso.with(MainActivity.this).invalidate(Variable.DOWNLOAD_URL + resources.getURI());
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
imageToShow = Picasso.with(MainActivity.this).load(Variable.DOWNLOAD_URL + resources.getURI()).get();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void v) {
marker.showInfoWindow();
}
}.execute();
}
return true;
}
答案 0 :(得分:2)
return false;
onMarkerClick()
public abstract boolean onMarkerClick(Marker marker)
<强>返回强>
如果侦听器已使用该事件(即,不应发生默认行为),则为true,否则为false(即,应发生默认行为)。默认行为是相机移动到标记并显示信息窗口。