使 Google Maps Android 标记处理多行
Posted
技术标签:
【中文标题】使 Google Maps Android 标记处理多行【英文标题】:Make Google Maps Android marker handle multiple lines 【发布时间】:2019-11-13 04:53:27 【问题描述】:如何使 Google Maps android 标记标题处理多行?现在只显示一行
see this marker title for reference
【问题讨论】:
您的图片链接似乎无效,正在获取502 bad gateway
。请检查一次。
@xaif 我没有收到这个错误
图片无论如何都没用
希望对您有所帮助,1) 。 ***.com/questions/15090148/…2)***.com/questions/43374214/…
custom info window adapter with custom data in map v2的可能重复
【参考方案1】:
1) 一个简单的方法是在标记标题中使用“\n”:
driversMarker = mMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bike_top_left))
.title("Click To Call.\n again nextline")
.snippet("Driver ID: " + key)
.position(location));
2) 另一种方法是使用自定义信息窗口适配器:
布局 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:background="@android:color/white"
>
<TextView
android:layout_
android:layout_
android:id="@+id/txtPickupInfo"
android:text="Pickup Here"
android:textStyle="bold"
/>
<TextView
android:layout_
android:layout_
android:id="@+id/txtPickupSnippet"
android:text="Optional"
android:textStyle="bold"
/>
</LinearLayout>
Java:自定义信息窗口:
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.Marker;
public class CustomInfoWindow implements GoogleMap.InfoWindowAdapter
View myView;
public CustomInfoWindow(Context context)
myView=LayoutInflater.from(context).inflate(R.layout.custom_rider_info_window,null);
@Override
public View getInfoWindow(Marker marker)
TextView textPickupTitle = ((TextView)myView.findViewById(R.id.txtPickupInfo));
TextView textPickupSnippet = ((TextView)myView.findViewById(R.id.txtPickupSnippet));
textPickupTitle.setText(marker.getTitle());
textPickupSnippet.setText(marker.getSnippet());
return myView;
@Override
public View getInfoContents(Marker marker)
return null;
用途:
public class MapActivity extends AppCompatActivity
implements GoogleMap.OnInfoWindowClickListener
@Override
public void onInfoWindowClick(Marker marker)
// do something when click the info window.
@Override
public void onMapReady(GoogleMap googleMap)
mMap = googleMap;
mMap.setInfoWindowAdapter(new CustomInfoWindow(this));
mMap.setOnInfoWindowClickListener(this);
当你设置你的标记时:
if(driversMarker!=null)
driversMarker.showInfoWindow();
【讨论】:
以上是关于使 Google Maps Android 标记处理多行的主要内容,如果未能解决你的问题,请参考以下文章
Google Maps Android API v2,错误的标记位置
Android Google Maps URL 查询 - 离线放置标记
居中位图标记(Google Maps Android API v2)