我正在尝试做一些非常简单的事情(见上文)。我希望画布的所有像素都是纯色,除了填充中心圆的像素。我已经阅读了数百篇关于这个主题的堆栈溢出帖子,并尝试了数百种方法,包括设置 PorterDuff.Mode。这是我当前的 MyView 的 onDraw() 扩展视图:
protected void onDraw(Canvas canvas) {
int w = canvas.getWidth();
int h = canvas.getHeight();
Paint framePaint = new Paint();
framePaint.setStyle(Paint.Style.FILL);
framePaint.setColor(Color.BLUE);
canvas.drawRect(0, 0, w, h, framePaint);
Paint transparentPaint = new Paint();
transparentPaint.setColor(Color.TRANSPARENT);
transparentPaint.setAntiAlias(true);
canvas.drawCircle(w / 2, h / 2, (w + h) / 4, transparentPaint);
}
我是不是误会了什么,为什么我不能用透明涂料在现有像素上绘画。当我这样做时,像素保持不变。当我使用 PorterDuff 时,像素变为黑色。请帮忙。