我已閱讀了20多個問題/答案,但仍無法獲得我想要的內容。我想剪一個矩形內的圓,如下圖所示:如何在Android中的矩形內裁剪圓形路徑
這裏是我的代碼:
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setARGB(180, 0, 0, 0);
canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
Path circularPath = new Path();
circularPath.addCircle(getWidth()/2, getHeight()/2, radius, Path.Direction.CCW);
canvas.clipPath(circularPath, Region.Op.REPLACE);
canvas.drawColor(0x00000000);
}
我的背景(setARGB
)顯示正常,但是沒有被裁剪。我也嘗試了REPLACE
之外的其他值,通過在構造函數上調用setLayerType(LAYER_TYPE_SOFTWARE, null);
強制進行軟件光柵化(正如我在某些Android版本上閱讀clipPath
不支持某些Op
),但無濟於事。我如何達到預期效果?
注意:我的最低SDK版本是15,所以我不需要支持任何低於4.0的東西。
你嘗試Region.Op.DIFFERENCE? – pskink 2015-04-05 14:37:25
@pskink是的,只是現在再試一次,以確保。不幸的是,沒有任何反應。 – 2015-04-05 14:38:50
差異對我來說很好,嘗試canvas.drawColor與Color.RED,然後clipPath,然後drawColor 0xps000000 – pskink 2015-04-05 14:51:35