如何自定义android google maps api v2信息窗口的外观?

时间:2013-08-05 02:49:54

标签: android google-maps-android-api-2 infowindow

在我的Android应用程序中,我有一个信息窗口,用于放置在地图上的标记。我想做这些事情:

  1. 使默认标记更大(现在太小)
  2. 当信息窗口显示时,其中的文字使宽度太长。有没有办法可以设置最大宽度?
  3. 如何增加标题和文字的字体大小?
  4. 有人能告诉我怎么做吗?

    感谢。

2 个答案:

答案 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上修改标记图标,您可以在其中使用资产中的标记图标。