我想在我的android应用程序中绘制一个圆圈叠加层,我当然可以轻松地做到这一点,并为其添加颜色。

但是我真正想做的是使圆保持透明,并用浅灰色使圆的外部(世界其他地方)着色。

我试图将圆添加为路径,为世界着色并裁剪圆,但是我在设备上的圆周围得到了一个边界框(尽管在模拟器上看起来不错)。

任何帮助表示赞赏。下面是一个代码片段:

公共无效绘画(画布画布,MapView mapView,布尔阴影)
    {
        super.draw(画布,mapView,阴影);

    Projection projection = mapView.getProjection();

    Point pt = new Point();

    GeoPoint geo = new GeoPoint((int) (mLat * 1e6), (int) (mLon * 1e6));

    projection.toPixels(geo, pt);
    float circleRadius = projection.metersToEquatorPixels(mRadius)
            * (1 / FloatMath.cos((float) Math.toRadians(mLat)));

    Paint innerCirclePaint;

    innerCirclePaint = new Paint();
    innerCirclePaint.setColor(Color.TRANSPARENT);
    innerCirclePaint.setAlpha(35);
    innerCirclePaint.setAntiAlias(true);
    innerCirclePaint.setStyle(Paint.Style.FILL);

    Path path = new Path();
    path.setFillType(Path.FillType.WINDING);
    path.addCircle((float) pt.x, (float) pt.y, circleRadius, Path.Direction.CCW);canvas.drawPath(path, innerCirclePaint);
    canvas.drawARGB(150, 0, 0, 0 );
    canvas.clipPath(path);
}

最佳答案

paint.setColor(Color.parseColor ("#88ff0000"));

10-07 19:20
查看更多