1

ユーザーが指を使って描画できる新しい Canvas(bitmap) 関数を使用して作成された Canvas を持つ Android アプリに取り組んでいます。私が抱えている問題は、ユーザーが指を使って線を消去できるようにする方法が見つからないことです。私はGoogleを検索し、サンプルのFingerPaintアプリを見ましたが、次を使用して線を消去する方法を調べました:

setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

キャンバスの単色でのみ機能するようです。元に戻す/やり直し機能を実行するコードを作成しましたが、割り当てられた変更を元に戻すのではなく、行の一部を消去できると便利です。誰かが私が試すことができるアイデアを持っているなら、私はそれを感謝します.

4

4 に答える 4

1
public void resetBitmapCanvasAndPath() {
    // TODO Auto-generated method stub
    mDrawingUtilities.mBitmap = Bitmap.createBitmap(Constants.SCREEN_WIDTH,Constants.SCREEN_HEIGHT ,
            Bitmap.Config.ARGB_8888);

        //Log.d("BITMAP","Restoring...");
        //mBitmap=BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 

    mDrawingUtilities.mCanvas = new Canvas(mDrawingUtilities.mBitmap);

    mDrawingUtilities.mPath = new Path();
}

ビットマップをリセットします。

于 2012-11-08T15:42:56.223 に答える
0

影響を受けるピクセルのアルファチャンネルを透明に設定するのと同じくらい簡単な場合があります。プラットフォームによって変わるので、それが0か255かは忘れました。

于 2012-11-08T16:28:47.953 に答える
0

トリッキーですが、解決策です:)。

消去モードでは、ビットマップの塗りつぶしの色が背景色 (たとえば白) と同じになる場合があります。ユーザーは背景色で描画できるので、削除のようなものです。:) (DrawSomething はそのようにします)。

于 2012-11-08T15:50:47.407 に答える