Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多边形未在android mapview中填充_Android_Google Maps_Canvas_Fill_Polygons - Fatal编程技术网

多边形未在android mapview中填充

多边形未在android mapview中填充,android,google-maps,canvas,fill,polygons,Android,Google Maps,Canvas,Fill,Polygons,我正在尝试在我的应用程序的地图视图上绘制一个填充多边形。无论我做了什么尝试,它都不会被填满。我可以让笔划显示出来,但我无法让它填充。下面是我的多边形类的绘制方法。它覆盖覆盖层 public void draw(Canvas canvas, MapView mapv, boolean shadow) { super.draw(canvas, mapv, shadow); Paint mPaint = new Paint();

我正在尝试在我的应用程序的地图视图上绘制一个填充多边形。无论我做了什么尝试,它都不会被填满。我可以让笔划显示出来,但我无法让它填充。下面是我的多边形类的绘制方法。它覆盖覆盖层

public void draw(Canvas canvas, MapView mapv, boolean shadow) {
            super.draw(canvas, mapv, shadow);

            Paint mPaint = new Paint();

            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setColor(Color.BLACK);
            mPaint.setStrokeJoin(Paint.Join.ROUND);
            mPaint.setStrokeCap(Paint.Cap.ROUND);
            mPaint.setStrokeWidth(6);

            Paint mPaintFill = new Paint();

            mPaintFill.setStyle(Paint.Style.FILL);
            mPaintFill.setColor(Color.GREEN);

            Path path = new Path();

            GeoPoint start = route.get(0);
            for (int i = 1; i < route.size(); ++i) {
                    Point p1 = new Point();
                    Point p2 = new Point();

                    Projection projection = mapv.getProjection();
                    projection.toPixels(start, p1);
                    projection.toPixels(route.get(i), p2);

                    path.moveTo(p2.x, p2.y);
                    path.lineTo(p1.x, p1.y);

                    start = route.get(i);
            }              


            canvas.drawPath(path, mPaint);
            canvas.drawPath(path, mPaintFill);
            //canvas.clipPath(path, Op.DIFFERENCE); 
    }
public void draw(画布、MapView mapv、布尔阴影){
super.draw(画布、贴图、阴影);
Paint mPaint=新油漆();
mPaint.setStyle(油漆、样式、笔划);
mPaint.setColor(Color.BLACK);
mPaint.setStrokeJoin(油漆.连接.圆形);
mPaint.setStrokeCap(油漆盖圆形);
mPaint.设定行程宽度(6);
Paint mPaintFill=新油漆();
mPaintFill.setStyle(Paint.Style.FILL);
mPaintFill.setColor(Color.GREEN);
路径路径=新路径();
地质点开始=路由。获取(0);
对于(int i=1;i

上面的代码为我将画线正确,但它没有得到填补。移除canvas.drawPath(路径,mPaint);只留下一个填充,地图上什么也看不到。我甚至试过将Paint.Style.STROKE设置为Paint.Style.FILL\u和\u-STROKE。我完全不知所措,现在我认为这是一件简单的事情,我看过头了。

这不是你的答案,而是一个建议。这个map API已经被弃用了,我已经使用了新的map API,它的实现简单了100%,并且将得到长期的支持。也许你应该放弃这个,实现APIv2