addArc() を使用して半円を作成しましたが、下の画像に示すように、円弧と長方形の間に奇妙なギャップがあります。円弧の周りのギャップを削除する方法。
int saveCount = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG);
super.dispatchDraw(canvas);
paint.setXfermode(pdMode);
paint.setStrokeWidth(0);
path.reset();
path.setFillType(Path.FillType.INVERSE_WINDING);
//path.moveTo(0, getHeight() - 100);
int h = (getMeasuredHeight() / 2) - (getMeasuredHeight() /2) - 100;
path.addArc(new RectF(50, h, getMeasuredWidth()-50, getMeasuredHeight()-50), 0, 180);
path.close();
canvas.drawPath(path, paint);
canvas.restoreToCount(saveCount);
paint.setXfermode(null);