我想在我的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"));