以下代码中的文字未完全显示在信息窗口中(如下所示):
mMap.addMarker(new MarkerOptions().position(the_local_user2).title("My Title").snippet("My Snippet"+"\n"+"1st Line Text"+"\n"+"2nd Line Text"+"\n"+"3rd Line Text")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
我希望它看起来与此相似:
我找到了Marker-Plugins SDK,但我不知道它是否好。
如何让信息窗口显示多行文字?
答案 0 :(得分:1)
您可以使用多行文字创建custom info window。
要做到这一点,您只需在GoogleMap.InfoWindowAdapter
中实施Activity
,并为信息窗口为自定义View
充气。然后拨打GoogleMap#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;
}
}
此外,Cordova GoogleMaps Plugin适用于使用Cordova或PhoneGap开发框架的应用程序;不适用于原生Android开发。 Google Maps Android API用于本地开发;它似乎已经在使用了。不要混淆两者。