我想在谷歌地图的右上角显示谷歌地图的信息窗口

时间:2016-03-29 11:10:59

标签: android google-maps

当用户点击谷歌地图中的任何标记时,我想在地图的右上角显示信息窗口。 它的信息窗口应始终显示在地图的右上角。

     // Setting a custom info window adapter for the google map
    mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {

        // Use default InfoWindow frame if return null
        // else inflate any layout
        @Override
        public View getInfoWindow(Marker marker) {

            /*showAlertToChooseImage();*/
            if (!marker.getTitle().equalsIgnoreCase("Helipad")) {
                // Getting view from the layout file info_window_layout
                View view = getActivity().getLayoutInflater().inflate(R.layout.windowlayout, null);

                // Getting reference to the TextView to set latitude
                TextView tvGroupName = (TextView) view.findViewById(R.id.txtViewGroupName);
                tvGroupName.setText(modelItemMarker.getIncidentGropName());
                // Getting reference to the TextView to set longitude
                TextView tvAddress = (TextView) view.findViewById(R.id.txtViewAddress);
                tvAddress.setText(modelItemMarker.getLOCATION_ADDRESS());

                TextView tvDateTime = (TextView) view.findViewById(R.id.txtViewDateTime);
                tvDateTime.setText(modelItemMarker.getIncidentDateTimeField());

                // Returning the view containing InfoWindow contents
                return view;
            } else {
                return null;
            }
        }

        // Defines the contents of the InfoWindow
        @Override
        public View getInfoContents(Marker arg0) {
            return null;
        }
    });

    // Handle click of the infoWindow.
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {
            Bundle bundle = new Bundle();
            bundle.putString(Constants.CallNO, modelItemMarker.getCadIdField());
            SideMenuFragment_Left.IsChangePwd = false;
            SideMenuFragment_Right.IsAgencies = false;
            Intent intent = new Intent(mContext, IncidentDetailActivity.class);
            intent.putExtra(Constants.INCIDENT_DETAIL, bundle);
            startActivity(intent);

        }
    });

任何人都可以帮忙。

提前致谢

3 个答案:

答案 0 :(得分:0)

尝试这种方式。

public class MarkerDemoActivity extends AppCompatActivity implements
    OnInfoWindowClickListener,
    OnMapReadyCallback {

private GoogleMap mMap;

@Override
public void onMapReady(GoogleMap map) {
    mMap = map;
    // Add markers to the map and do other map setup.
    ...
    // Set a listener for info window events.
    mMap.setOnInfoWindowClickListener(this);
}

@Override
public void onInfoWindowClick(Marker marker) {
    Toast.makeText(this, "Info window clicked",
            Toast.LENGTH_SHORT).show();
}
}

答案 1 :(得分:0)

如上面的代码,你将获得标记顶部的信息窗口。但是如果你想做左上角我认为你需要再采取一个布局,你必须将这个布局添加到地图活动点击标记

答案 2 :(得分:0)

Google Maps API for Android的当前功能无法实现。尝试使用Google Maps Javascript API通过WebFrame将其实施到Android应用中。

您可以使用InfoWindowOptions使用pixelOffset位置选项自定义排名 关于here的更多信息。