如何为Google地图设置自定义标记标题 [英] How to set a custom marker title for google maps
本文介绍了如何为Google地图设置自定义标记标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何设置包含信息和按钮的样式自定义标记标题/片段?我已经有一个自定义标记图标图像集.现在,我需要一个自定义弹出窗口,其中将包含某些信息和一个当用户点击标记时的按钮.
How do I set a styled custom marker title/snippet that includes information and a button? I already have a custom marker icon image set. Now I need a custom pop up window that will contain certain information and a button when the user taps the marker.
这与我想要实现的目标很接近.
Here's something close to what I wanted to achieve.
自定义标题/摘录示例
LatLng huduma_gpo = new LatLng(-1.280694, 36.818277);
googleMap.addMarker(new MarkerOptions().position(huduma_gpo).title("Huduma center GPO")).setIcon(BitmapDescriptorFactory.fromBitmap(marker));
// For zooming automatically to the location of the marker
googleMap.moveCamera( CameraUpdateFactory.newLatLngZoom(huduma_gpo , 12.0f) );
推荐答案
使用自定义布局设计并将其添加到您的Google Map.在这里参考下面的示例代码并自定义您的设计.
Use a Custom layout design and add it to your Google Map. Here refer this below sample code and customize your design.
窗口设计:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_info_bubble"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="40dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
<ImageView
android:id="@+id/badge"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/text_lay"
android:background="@drawable/icn_right_arrow" />
<LinearLayout
android:id="@+id/text_lay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"
android:padding="3dp">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:padding="3dp"
android:singleLine="true"
android:text="title"
android:textColor="#ff000000"
android:textSize="@dimen/text_size_small" />
<TextView
android:id="@+id/snippet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:fontFamily="sans-serif"
android:padding="3dp"
android:text="45 bays available"
android:textColor="@color/green"
android:textSize="14dp" />
</LinearLayout>
</RelativeLayout>
窗口适配器的Java类:
public class InfoWindowAdapter implements GoogleMap.InfoWindowAdapter, CommonValues, BundleTags {
private View view;
private FragmentActivity myContext;
public InfoWindowAdapter(FragmentActivity aContext) {
this.myContext = aContext;
LayoutInflater inflater = (LayoutInflater) myContext.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.layout_inflate_parking_info_window,
null);
}
@Override
public View getInfoContents(Marker marker) {
if (marker != null
&& marker.isInfoWindowShown()) {
marker.hideInfoWindow();
marker.showInfoWindow();
}
return null;
}
@Override
public View getInfoWindow(final Marker marker) {
final String title = marker.getTitle();
final TextView titleUi = ((TextView) view.findViewById(R.id.title));
if (title != null) {
titleUi.setText(title);
} else {
titleUi.setText("");
titleUi.setVisibility(View.GONE);
}
final String snippet = marker.getSnippet();
final TextView snippetUi = ((TextView) view
.findViewById(R.id.snippet));
if (snippet != null) {
String[] SnippetArray = snippet.split(SEPARATOR);
snippetUi.setText(SnippetArray[0]);
} else {
snippetUi.setText("");
}
return view;
}
}
这篇关于如何为Google地图设置自定义标记标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文