我正在创建一个自定义视图,用户可以选择一个角度。下面是最终结果的示例:
我使用以下代码实现这个功能:
mPaint.setColor(Color.BLACK);
canvas.drawCircle((int) (mSize.right / 2), (int) (mSize.bottom / 2),
mWidthOutside, mPaint);
mPaint.setColor(Color.LTGRAY);
canvas.drawCircle((int) (mSize.right / 2), (int) (mSize.bottom / 2),
mWidthInside, mPaint);
这种方法的问题在于,背景是一个固定的LTGRAY
颜色,我希望将其变成透明的。
我该如何使圆形中心透明?
我尝试了下面的方法,希望drawArc
函数只创建线条而不填充中心。但它实际上还是填充了中心。
RectF rectF = new RectF(centerX - mRadius, centerY - mRadius, centerX
+ mRadius, centerY + mRadius);
canvas.drawArc(rectF, 0, 360, false, mPaint);
如何保持圆的中心透明?
Color.LTGRAY
设置的颜料决定的。我不想在内部画一个圆圈,我只想要外环。原因是,如果圆圈中心有其他物体,比如文本,它们将被圆圈覆盖。使用图像也不太有效,因为它们必须被重新调整大小,这只会绘制任意形状。 - Matt Clark