首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Google地图-标记上方的显示线

Android Google地图-标记上方的显示线
EN

Stack Overflow用户
提问于 2015-09-30 17:10:06
回答 1查看 876关注 0票数 2

根据Polyline文件;

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

多线条可以有一个z索引,它可以影响它们相对于其他形状的高度,但不影响标记。标记显示在比所有形状都高的级别。因此,要想在地图上的标记上显示一条线,我是否必须完全放弃Polyline,并在FrameLayout上放置一个画布,自己处理这条线的绘制?还是有更简单的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-19 22:12:53

对于其他尝试这样做的人,我创建了一个扩展FrameLayout和实现View.OnTouchListener的类。以下是关键部分:

代码语言:javascript
复制
@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完成的),然后您可以在地图的标记上绘图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32871967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档