Java 带有多行信息窗口的地图标记

Java 带有多行信息窗口的地图标记,java,google-maps,android-studio,marker,Java,Google Maps,Android Studio,Marker,以下代码中的文本未完全显示在信息窗口中(如下所示): 我希望它看起来像这样: 我发现了,但我不知道它是好是坏 如何获取信息窗口以显示多行文字?您可以创建一个包含多行文字的窗口 要做到这一点,您只需在活动中实现GoogleMap.InfoWindowAdapter,并为信息窗口充气一个自定义视图。然后调用谷歌地图#setInfoWindowAdapter public class MapActivity extends AppCompatActivity imeplements OnMapRe

以下代码中的文本未完全显示在信息窗口中(如下所示):

我希望它看起来像这样:

我发现了,但我不知道它是好是坏

如何获取信息窗口以显示多行文字?

您可以创建一个包含多行文字的窗口

要做到这一点,您只需在
活动中实现
GoogleMap.InfoWindowAdapter
,并为信息窗口充气一个自定义
视图。然后调用
谷歌地图#setInfoWindowAdapter

public class MapActivity extends AppCompatActivity imeplements OnMapReadyCallback, GoogleMap.InfoWindowAdapter {

    private GoogleMap mGoogleMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstaceState);
        setContentView(r.layout.activity_map);

        SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        fragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.setInfoWindowAdapter(this);
        mGoogleMap = googleMap;
    }

    @Override
    public View getInfoWindow(Marker marker) {
        return null; // Use default info window background
    }

    @Override
    public View getInfoContents(Marker marker) {
        View view = getLayoutInflater().inflate(R.layout.info_window_multiline, null);

        TextView titleTextView = (TextView) view.findViewById(R.id.title);
        TextView snippetTextView = (TextView) view.findViewById(R.id.snippet);

        titleTextView.setText(marker.getTitle());
        snippetTextView.setText(marker.getSnippet());

        return view;
    }

}
此外,适用于使用或开发框架的应用程序;不适用于本机Android开发。这是为了本土发展;你似乎已经在利用它了。不要混淆两者

public class MapActivity extends AppCompatActivity imeplements OnMapReadyCallback, GoogleMap.InfoWindowAdapter {

    private GoogleMap mGoogleMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstaceState);
        setContentView(r.layout.activity_map);

        SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        fragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.setInfoWindowAdapter(this);
        mGoogleMap = googleMap;
    }

    @Override
    public View getInfoWindow(Marker marker) {
        return null; // Use default info window background
    }

    @Override
    public View getInfoContents(Marker marker) {
        View view = getLayoutInflater().inflate(R.layout.info_window_multiline, null);

        TextView titleTextView = (TextView) view.findViewById(R.id.title);
        TextView snippetTextView = (TextView) view.findViewById(R.id.snippet);

        titleTextView.setText(marker.getTitle());
        snippetTextView.setText(marker.getSnippet());

        return view;
    }

}