我正在创建一个用户可以选择角度的自定义视图。下面是最终结果的示例:
我使用以下代码实现此目的:
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);
关于如何保持圆心的透明度的建议?
答案 0 :(得分:8)
正如问:)
解决方案是将样式设置为Paint.Style.STROKE
答案 1 :(得分:1)
在画布上空心圆。
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);