1

私はAndroidアプリを構築していますが、単純なことに悩まされています。Canvasオブジェクトを別のCanvasオブジェクトに「マージ」するなど、どのように描画(または「追加」)するのですか?

それが不可能な場合、それを行うための最良の解決策は何ですか?

ありがとう!

4

1 に答える 1

9

これは完全にあなたの実装に依存します。

  • 各Canvasが各フレームの配列(形状など)から直接オブジェクトを描画する場合は、一方の配列をもう一方の配列に追加するだけです。このように、Canvasを大幅に変更する必要はなく、1つの配列を別の配列に追加するだけで済みます(おそらく、ArrayListここに移動する方法です)。

  • 上記が当てはまらない場合は、さらに大幅な変更が必要になる場合があります。同様の問題が発生したときcommitChanges()、既存のCanvasに一連の変更を追加する(上に線を追加するなど)という新しいメソッドを作成しました。

    1. 最初に影響を受ける領域を無効にしてから、Canvasのサイズでビットマップを作成しました:Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGBA_8888);
    2. 次に、そのビットマップからキャンバスを作成しましたCanvas workingDrawing = new Canvas(bmp);
    3. 次に、必要なものをすべてその新しいCanvasに描画しました。この場合、それはキャンバスの1つからのデータになります。
    4. 次に、他のCanvasで、描画したばかりのビットマップを取得して、このCanvasに描画する必要があります。そのように:canvas.drawBitmap(yourDrawnBitmap, 0.0f, 0.0f, null);

直面する困難は、あるCanvasから別のCanvasにデータを転送することだと思います。ただし、実装に関係なく、上記の方法のいずれかが効果的に機能するはずです。

于 2012-06-06T20:05:00.227 に答える