在Clusterer底部的盒子形状的Android Map自定义信息窗口

时间:2016-09-27 11:31:25

标签: android google-maps infowindow markerclusterer

我需要为我的Android应用程序制作自定义信息窗口;如下。请看下面的图片。

当用户点击标记时,会出现此信息窗口。它可以根据标记位置显示在地图的顶部或地图的底部。

我不知道这个。我已经探索了stackoverflow,创建自定义信息窗口的方法很多,但对于这个,我还没有找到任何解决方案。那么,有人可以告诉我如何构建它吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该制作自定义布局。

<FrameLayout>
....
<MapFragment/>

<FrameLayout (match_parent, match_parent) ... android:id="@+id/my_info_window_wrapper"/>

<LinearLayout...
android:id="@+id/my_info_window"
 android:visibility = "gone">

<ImageView../>
<TextView../>

</LinearLayout>
</FrameLayout >

并在代码中

mViewWrapper.setOnClickListener(new OnClickLister{
 mView.setVisibility(View.GONE);
)};

GoogleMap.setOnMarkerClickListener(new OnMarkerClickListener{
  mView.setVisibility(View.VISIBLE);
)};

答案 1 :(得分:1)

您可以通过此代码以编程方式设置自定义窗口。按下按钮

LayoutInflater inflater = LayoutInflater.from(this);
final Dialog dialog1 = new Dialog(this);
Window window = dialog1.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.BOTTOM; // Here you can set window top or bottom
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);
View view1 = inflater.inflate(R.layout.openYourWindow, null);
dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog1.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog1.setContentView(view1);
dialog1.show();