gpt4 book ai didi

java - Google map 信息窗口是否可以与标记重叠

转载 作者:行者123 更新时间:2023-12-01 13:42:12 24 4
gpt4 key购买 nike

我已经研究如何做到这一点很长一段时间了,但我找不到单一的解决方案,似乎以前没有人尝试过这一点。我正在尝试执行以下操作:

这是标记的样子:

enter image description here

这就是我希望弹出信息窗口时的样子:

enter image description here

有没有办法让信息窗口像这样重叠标记并隐藏其中的一部分?注意:第二张图片只是设计模型(经过Photoshop处理),尚未实现。第一张图片是实际的屏幕截图。

最佳答案

这是添加自定义标记图像的代码。

    LayoutInflater inflater = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

marker=inflater.inflate(R.layout.custom_marker_layout,null, false);

numTxt = (TextView) marker.findViewById(R.id.num_txt);

for(int i=0;i<locations.size();i++){

numTxt.setText(count.get(i).toString());

numTxt.setTextColor(Color.GREEN);

if(Integer.parseInt(count.get(i).toString())<=5){
numTxt.setTextColor(Color.RED);
}

String title=locations.get(i).toString()+"count"+count.get(i);

Currnt=mMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(BasicMapActivity2.this, marker))).
position(new LatLng(Double.parseDouble(latitudes.get(i).toString()), Double.parseDouble(longitudes.get(i).toString())))
.title(title)
.snippet(address.get(i)));
markers.add(Currnt);
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Double.parseDouble(latitudes.get(i).toString()), Double.parseDouble(longitudes.get(i).toString())), 12.0f));
}

以及在谷歌地图中将 View 转换为位图的方法。

// Convert a view to bitmap
public static Bitmap createDrawableFromView(Context context, View view) {
DisplayMetrics displayMetrics = new DisplayMetrics();
((BasicMapActivity2)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

view.setLayoutParams(new LayoutParams(200,65));
view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
view.buildDrawingCache();
view.buildDrawingCache(true);

Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);

view.draw(canvas);

return bitmap;
}

和 Custom_marker_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal" >

<ImageView
android:id="@+id/img"
android:layout_width="55dp"
android:layout_height="65dp"
android:src="@drawable/custom_marker" />

<TextView
android:id="@+id/num_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9"
android:textColor="#008000"
android:textSize="18dp"
android:textStyle="bold" />

</FrameLayout>

在此实现中,我显示自定义图像,并在该图像中显示一个带有计数值的 TextView ,当我单击标记时,它会显示我的自定义窗口。

关于java - Google map 信息窗口是否可以与标记重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com