2013-09-11

[Java, Android] くり抜かれた円、四角を Canvas に描く方法。

Canvas 覗き穴やスコープごしに見ているような描画をする方法がわからなくてなかなか時間がかかりましたが、なんとか実現できましたので備忘録として公開します。

[最終結論]
Path.Direction.CCW を使うと画像をくり抜くことができる。





はじめは、

canvas.drawColor(Color.BLACK);
Path path = new Path();
path.addCircle(300, 300, 100, Path.Direction.CCW);
canvas.clipPath(path);

というようにクリッピングを使って「指定したところ以外は描画しない」設定をしていたのですが、これでは、黒く塗りつぶした部分は描画できなくなってしまいます。
私のやりたいことは以下のようなものだったので、いつものごとくGoogleで情報を探してみました。
(わかりにくいですが、弾丸が右下に表示されています。)