[最終結論]
Path.Direction.CCW を使うと画像をくり抜くことができる。
はじめは、
canvas.drawColor(Color.BLACK);
Path path = new Path();
path.addCircle(300, 300, 100, Path.Direction.CCW);
canvas.clipPath(path);
というようにクリッピングを使って「指定したところ以外は描画しない」設定をしていたのですが、これでは、黒く塗りつぶした部分は描画できなくなってしまいます。
私のやりたいことは以下のようなものだったので、いつものごとくGoogleで情報を探してみました。
(わかりにくいですが、弾丸が右下に表示されています。)
すると、
[プログ - Pathを切り抜くには]
http://www.seeda.jp/modules/d3blog/details.php?bid=28&cid=7
に公開されている情報がまさにそれでした。
paint.setColor(Color.BLACK);
Path path = new Path();
path.addRect(0, 0, canvasWidth, canvasHeight, Path.Direction.CW); // ①
path.addCircle(300, 300, 100, Path.Direction.CCW); // ②
canvas.drawPath(path, paint); // ③
①黒で全部を塗りつぶした new Path() を用意します。
②「Path.Direction.CCW」を設定した円を追加(つまり、円をくり抜く作業です)
③キャンバスに描画
ちなみに Path.Direction.CCW は描画方向を意味しています。
CW(Clockwise) => 時計回り, CCW(Counter clockwise) => 反時計回り
反時計回りは、Anticlockwise だけだと思っていましたが違う表現もあるのですね。
貴重な情報を紹介してくれている上記のブログには大感謝です。
0 件のコメント:
コメントを投稿