0

基本的にキャンバスに穴を作成する Rect を描画するにはどうすればよいですか? たとえば、ピクセル アート用に作成された画像編集アプリケーションがあるとします。ユーザーが画面の領域に触れて、紫色の長方形を描きます。おっと、彼は長方形を間違った場所に置きました。ユーザーは、この紫色の正方形を再び透明にして、正しい位置に再描画できるようにする必要があります。

どうすればいいですか?PorterDuff.Mode.Clear、myPaintColor.setColor(Color.TRANSPARENT) などを使用しましたが、すべて同じ結果が得られます。透明であるべきところに醜い黒い四角。私のキャンバスは透明で始まり、getDrawingCache を介して透明な .PNG に保存できるので、キャンバスが透明で始まることがわかります。しかし、紫色の正方形を描いたユーザーがキャンバスを再び透明にするにはどうすればよいでしょうか? ありがとう。私は一日中これを理解しようとしており、これに関するすべてのドキュメントを読んでいますが、理解できません。

ここに私が持っているものがあります:

            Rect square = new Rect();
            Paint drawColor = new Paint();
            //drawColor.setColor(UserColor.get(i));
            drawColor.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
            square.set(CanvasFractionWidth * UserX.get(i), CanvasFractionHeight * UserY.get(i), (CanvasFractionWidth * UserX.get(i)) + (CanvasFractionWidth), (CanvasFractionHeight * UserY.get(i)) + CanvasFractionHeight);
            canvas.drawRect(square, drawColor);
4

1 に答える 1

2

RoboDemoでは、これを使用します:

        Paint p = new Paint();
        p.setXfermode( new PorterDuffXfermode( Mode.CLEAR ) );
于 2012-11-21T22:28:57.540 に答える