我正在创建一个自定义视图,用户可以在其中选择一个角度。以下是最终结果应如下所示的示例:
我使用以下代码实现此目的:
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);
关于如何保持圆心的透明度的建议?
正如问:)解决方案是将样式设置为Paint.Style.STROKE
画布中的空心圆。
Bitmap bitmap=Bitmap.createBitmap(500,500, Bitmap.Config.ARGB_8888);
Canvas canvas=new Canvas(bitmap);
//canvas.clipPath(,Region.Op.DIFFERENCE);
Paint paint=new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(140);
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(250,250,150,paint);
imageView.setImageBitmap(bitmap);