如何在 Google Maps API2 上制作 Android 交互式 InfoWindow 透明

How to make Android interactive InfoWindow over Google Maps API2 Transparent

我实施了 perfect answer of chose007 以使 InfoWindow 超过 Google Maps API2 在我的应用程序中可点击。唯一的问题是,我想让 InfoWindow 透明(使其呈气泡状)。我可以使用样式包装器使用非交互式 InfoWindow 来做到这一点:

gMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {

        @Override
        public View getInfoWindow(Marker marker) {

           ContextThemeWrapper cw = new ContextThemeWrapper(
                 getApplicationContext(),R.style.TransparentDialog);
              LayoutInflater inflater = (LayoutInflater) cw
                 .getSystemService(LAYOUT_INFLATER_SERVICE);
           View layout = inflater.inflate(R.layout.map_bubble,
                 null);
           return layout;
        }

InfoWindow 显示为透明,但无法设置 window 中的内容:

 @Override
         public View getInfoContents(Marker marker) {
            // Setting up the infoWindow with current's marker info
         TextView bubHd = (TextView) infoWindow.findViewById(R.id.bubble_hd);
         bubHd.setText(places.get(placeId).getTitle());
           .
           .
           .

而且它没有更多的交互性,因为交互性也在 getInfoContents 内部设置,在我看来,如果 getInfoWindow returns 非 null结果。

有谁知道,如何使 Google 地图上的交互式信息窗口透明?

The InfoWindow appears as transparent, but it is not possible to set the contents of the window in getInfoContents()

正确。如果 getInfoWindow() return 是一个非 null 值,您应该 return complete 信息 window 完成个内容,getInfoContents()不会被调用。将您的 getInfoContents() 方法主体语句移动到 getInfoWindow().