在我的Android应用程序中,我有一个信息窗口,用于放置在地图上的标记。我想做这些事情:
有人能告诉我怎么做吗?
感谢。
答案 0 :(得分:0)
1:将标记添加到地图时,您可以在MarkerOptions
中设置图标。制作自己的图标并使用它。
2& 3:在GoogleMap上设置onMarkerClickListener
。在回调中,您可以在地图上创建并显示自己的信息窗口视图(只需确保从onMarkerClick()
回调中返回false)
答案 1 :(得分:0)
也许有点晚了,但您需要创建一个新的自定义适配器,您可以在这里查看:How to change Google Maps marker window Info
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(com.google.android.gms.maps.model.Marker arg0) {
return null;
}
@Override
public View getInfoContents(com.google.android.gms.maps.model.Marker marker) {
LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
View mView = null;
//using the id, you can store multiple types of markers on List's and change the layout
if (marker.getId().equals(end.getId())) {
mView = inflater.inflate(R.layout.custom_info_window, (ViewGroup) findViewById(R.id.map), false);
((TextView) mView.findViewById(R.id.txtTitle)).setText(marker.getTitle());
}else{
mView = inflater.inflate(R.layout.normal_info_window, (ViewGroup) findViewById(R.id.map), false);
((TextView) mView.findViewById(R.id.txtTitle)).setText(marker.getTitle());
((TextView) mView.findViewById(R.id.txtDescription)).setText(marker.getSnippet());
}
return mView;
}
});
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
//do whatever you need
}
});
在自定义视图中,您可以修改字体的大小以及其他内容,第一点可以在MarkerOptions.setIcon上修改标记图标,您可以在其中使用资产中的标记图标。