gpt4 book ai didi

Android 谷歌地图 - 在标记上方显示线

转载 作者:行者123 更新时间:2023-11-30 01:52:07 25 4
gpt4 key购买 nike

根据 Polyline 文档;

https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polyline

多段线可以有一个 z-index,它会影响它们相对于其他形状的高度,但不会影响标记。标记显示在比所有形状更高的级别。因此,要在 map 上的标记上方显示一条线,我是否必须完全放弃 Polyline,并将 Canvas 放在 FrameLayout 上并自己处理线的绘制?或者有更简单的方法吗?

最佳答案

对于任何其他尝试这样做的人,我制作了一个扩展 FrameLayout 并实现 View.OnTouchListener 的类。这是关键部分:

@Override
public void onDraw(Canvas canvas) {
Path path = null;
for (Point point : points) {
if(path == null){
path = new Path();
path.moveTo(point.x, point.y);
}
else {
path.lineTo(point.x,point.y);
}
}

if(path != null) {
canvas.drawPath(path, paint);
}
}

@Override
public boolean onTouch(View view, MotionEvent event) {

if(event.getAction() == MotionEvent.ACTION_UP){
callback.complete(points,null);
return true;
}

Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
//Log.d(TAG, "point: " + point);
return true;
}

onTouch 捕获触摸事件,invalidate() 触发绘制线条的 onDraw。将其中之一添加到您的布局中(我用 Java 完成了),然后您可以在 map 的标记上绘制。

关于Android 谷歌地图 - 在标记上方显示线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871967/

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