根据Polyline文件;
https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polyline
多线条可以有一个z索引,它可以影响它们相对于其他形状的高度,但不影响标记。标记显示在比所有形状都高的级别。因此,要想在地图上的标记上显示一条线,我是否必须完全放弃Polyline,并在FrameLayout上放置一个画布,自己处理这条线的绘制?还是有更简单的方法?
发布于 2015-10-19 22:12:53
对于其他尝试这样做的人,我创建了一个扩展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完成的),然后您可以在地图的标记上绘图。
https://stackoverflow.com/questions/32871967
复制相似问题