36

クリッピング四角形の境界外での描画を可能にするグラフィック環境で作成されたアプリを移植しています。Androidでこれを行う方法はありますか?

4

6 に答える 6

47

境界の外に描画するには、キャンバスの clipRect を拡張する必要があります。

Canvas クラスのオーバーロードされた clipRect メソッドを確認してください。

注 - デフォルトの操作は INTERSECT であるため、Region 操作を指定する必要があります。だから、このようなもの:

Rect newRect = canvas.getClipBounds();
newRect.inset(-5, -5)  //make the rect larger

canvas.clipRect (newRect, Region.Op.REPLACE);
//happily draw outside the bound now
于 2013-03-19T17:21:09.037 に答える
9

好きな場所に描画できますが、クリッピング四角形の外側には何も保存されません。

于 2010-10-26T22:46:55.627 に答える
3

@numan の回答はほぼ問題ありません。問題はそのアプローチでのメモリ割り当てであるため、代わりにこれを行う必要があります。

// in constructor/elsewhere
Rect newRect = new Rect();

// in onDraw
canvas.getClipBounds(newRect);
newRect.inset(0, -20);  //make the rect larger
canvas.clipRect(newRect, Region.Op.REPLACE);

それは問題を解決します:-)

于 2016-10-16T17:04:43.063 に答える